У меня есть доступ только для чтения к базе данных на удаленном сервере. Итак, я могу выполнить:
COPY products TO '/tmp/products.csv' DELIMITER ',';
Но на этом сервере у меня нет прав на создание / сохранение файла, поэтому мне нужно сделать это на моей локальной машине.
Когда я подключаюсь к удаленной базе данных, как я могу выполнить команду, чтобы сохранить файл на моем локальном компьютере вместо удаленного сервера?
Или как выполнить команду Linux для подключения к удаленной базе данных, выполнить запрос и сохранить выходные данные в виде файла на моем локальном компьютере?
источник
psql
сценария, начиная сBEGIN
, затем выполняя ваши\copy
команды, затем aCOMMIT
. Или используйтеpsql -f
для запуска сценария, а не здесь документ.-A
вместо,-P format=unaligned
а также я думаю, что вам нужно-P fieldsep=,
Команда Linux:
источник
-t -P format=unaligned
к этой команде, вы получите что-то более близкое, например, глючный CSV с разделителями каналов, но каналы в тексте не будут экранированы, поэтому они будут недействительными.-P fieldsep=','
за исключением того, что это может привести к ошибкам из-за отсутствия выхода.-P fieldsep_zero=on
было бы хорошо, если бы вы не возражали против синтаксического анализа текста, разделенного нулем, поскольку нулевые байты не могут возникатьpsql
естественным образом.