Solución:
Puede almacenar el resultado de un comando de shell dentro de un psql
variable como esta:
set afile `echo "$outputdir/a.csv"`
COPY (SELECT * FROM a) TO :'afile';
Otra solución (mejor en mi opinión) es usar solo psql
variables, vea esta respuesta mía sobre las variables psql, que es similar a su ejemplo. Un ejemplo para su caso sería:
set outputdir '/path/to/output'
set afile :outputdir '/a.csv'
COPY (SELECT * FROM a) TO :'afile';
Tenga en cuenta que, en el ejemplo, debe establecer la variable dentro del archivo de secuencia de comandos, pero puede omitir la primera línea si la establece cuando llama psql
:
psql --set=outputdir="$outputdir" <conn parameters> -f /path/to/yourscript.sql
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)