Tengo acceso de solo lectura a una base de datos en un servidor remoto. Entonces, puedo ejecutar:
COPY products TO '/tmp/products.csv' DELIMITER ',';
Pero en ese servidor no tengo permisos para crear / guardar un archivo, así que necesito hacer esto en mi máquina local.
Cuando me conecto a la base de datos remota, ¿cómo puedo ejecutar un comando para guardar el archivo en mi máquina local en lugar del servidor remoto?
O, ¿cómo puedo ejecutar un comando de Linux para conectarme a la base de datos remota, ejecutar una consulta y guardar la salida como un archivo en mi máquina local?
fuente

psqlun script, comenzando conBEGIN, luego haciendo sus\copycomandos, luego aCOMMIT. O usepsql -fpara ejecutar un script en lugar de usar un documento aquí.-Alugar de-P format=unalignedy también creo que necesita un-P fieldsep=,El comando de Linux es:
fuente
-t -P format=unaligneda ese comando, obtendrá algo un poco más cerca, como CSV delimitado por tuberías con errores, pero las tuberías en el texto no se escaparán, por lo que no será válido.-P fieldsep=','excepto que esto sería aún más probable que cause errores debido a la falta de escape.-P fieldsep_zero=onestaría bien si no le importara analizar texto delimitado por bytes nulos, ya que los bytes nulos no pueden ocurrir en lapsqlsalida de forma natural.