Я пытаюсь экспортировать таблицу PostgreSQL с заголовками в файл CSV через командную строку, однако я получаю ее для экспорта в файл CSV, но без заголовков.
Мой код выглядит следующим образом:
COPY products_273 to '/tmp/products_199.csv' delimiters',';
postgresql
csv
export-to-csv
heading
postgresql-copy
Elitmiar
источник
источник
Ответы:
как описано в руководстве .
источник
COPY
требует прав администратора. Используйте\COPY
вместо этого, если вы столкнетесь с проблемами.COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);
Из командной строки psql:
нет точки с запятой в конце.
источник
COPY
команда требует административного доступаpsql
подходе можно сохранять результаты в любом месте, к которому у них есть доступ. Я просто использовалpsql
подход, чтобы получить данные с удаленного сервера в локальный файл. Очень гладкоpg_dump -h remote | pg_restore -h localhost
.psql -c "\COPY (SELECT * FROM mytable) TO STDOUT" > mytable.csv
вместо простого имени таблицы вы также можете написать запрос для получения только данных выбранного столбца.
с правами администратора
источник
\COPY ...
). И, по крайней мере, в моей версии psql (9.5.2) мне не нужно было указывать «DELIMITER»; по умолчанию была запятая.Когда у меня нет разрешения на запись файла из Postgres, я обнаруживаю, что могу выполнить запрос из командной строки.
источник
Это работает
источник
-F ,
, и использовать|
в качестве разделителя. Спасибо!COPY
утверждение, которое создает файл для повторного использованияДля версии 9.5, которую я использую, это было бы так:
источник
Это решение работало для меня, используя
\copy
.источник
Самый простой способ (использование
psql
) - использование--csv
флага:источник
Вот как у меня получилась рабочая оболочка power используя pgsl connnect для базы данных Heroku PG:
Сначала мне пришлось изменить кодировку клиента на utf8 следующим образом:
\encoding UTF8
Затем выгрузил данные в файл CSV:
Я использовал ~ в качестве разделителя, потому что мне не нравятся файлы CSV, я обычно использую файлы TSV, но он не позволяет мне добавлять '\ t' в качестве разделителя, поэтому я использовал ~, потому что это редко используемый символ.
источник
скопировать (запрос данных любого запроса на экспорт) в 'fileablsoutepathwihname' delimiter ',' csv header;
Используя это вы также можете экспортировать данные.
источник
Я публикую этот ответ, потому что ни один из приведенных здесь ответов на самом деле не работал для меня. Я не мог использовать
COPY
изнутри Postgres, потому что у меня не было правильных разрешений. Поэтому я выбрал «Экспорт строк сетки» и сохранил вывод как UTF-8.psql
Версия дается также @ Брайан не работал для меня, по другой причине. Причина, по которой это не сработало, заключается в том, что, очевидно, командная строка Windows (я использовал Windows) сама вмешивалась в кодировку. Я продолжал получать эту ошибку:В итоге я решил написать короткий JDBC-скрипт (Java), который считывал файл CSV и выдавал операторы вставки прямо в мою таблицу Postgres. Это работало, но командная строка также работала бы, если бы она не изменяла кодировку.
источник
Попробуйте это: "COPY products_273 FROM '\ tmp \ products_199.csv' РАЗДЕЛИТЕЛЬ ',' CSV HEADER"
источник