06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© FUOC • 71Z799014MO 23 <strong>Bases</strong> <strong>de</strong> <strong>datos</strong> en PostgreSQL<br />

<strong>de</strong>mo=# \echo :var1<br />

<strong>de</strong>mostracion<br />

<strong>de</strong>mo-#<br />

De la misma forma, psql <strong>de</strong>fine algunas variables especiales que pue<strong>de</strong>n ser<br />

útiles para conocer <strong>de</strong>talles <strong>de</strong>l servidor al que estamos conectados:<br />

<strong>de</strong>mo=# \echo :DBNAME :ENCODING :HOST :PORT :USER;<br />

<strong>de</strong>mo LATIN9 localhost 5432 postgres<br />

<strong>de</strong>mo=#<br />

El uso <strong>de</strong> variables pue<strong>de</strong> ayudar en la ejecución <strong>de</strong> sentencias SQL:<br />

<strong>de</strong>mo=> \set var2 ‘mi_tabla’<br />

<strong>de</strong>mo=> SELECT * FROM :var2;<br />

Se <strong>de</strong>be ser muy cuidadoso con el uso <strong>de</strong> las comillas y también es importante<br />

tener en cuenta que <strong>de</strong>ntro <strong>de</strong> ca<strong>de</strong>nas <strong>de</strong> caracteres no se sustituyen<br />

variables.<br />

3.4. Proceso por lotes y formatos <strong>de</strong> salida<br />

A<strong>de</strong>más <strong>de</strong> ser interactivo, psql pue<strong>de</strong> procesar comandos por lotes almacenados<br />

en un archivo <strong>de</strong>l sistema operativo mediante la siguiente sintaxis:<br />

$ psql <strong>de</strong>mo -f <strong>de</strong>mo.psql<br />

Aunque el siguiente comando también funciona en el mismo sentido, no es recomendable<br />

usarlo porque <strong>de</strong> este modo, psql no muestra información <strong>de</strong> <strong>de</strong>puración importante,<br />

como los números <strong>de</strong> línea don<strong>de</strong> se localizan los errores, en caso <strong>de</strong> haberlos:<br />

$ psql <strong>de</strong>mo < <strong>de</strong>mo.psql<br />

El propio intérprete psql nos proporciona mecanismos para almacenar en fichero<br />

el resultado <strong>de</strong> las sentencias:<br />

• Especificando el fichero <strong>de</strong>stino* directamente al finalizar una sentencia:<br />

* Hemos almacenado el resultado<br />

en el fichero ‘/tmp/a.txt’.<br />

<strong>de</strong>mo=# select user \g /tmp/a.txt

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!