Сохранить вывод PL / pgSQL из PostgreSQL в файл CSV - PullRequest
802 голосов
/ 05 октября 2009

Какой самый простой способ сохранить вывод PL / pgSQL из базы данных PostgreSQL в файл CSV?

Я использую PostgreSQL 8.4 с плагином pgAdmin III и PSQL, откуда я запускаю запросы.

Ответы [ 17 ]

7 голосов
/ 02 апреля 2018

Я попробовал несколько вещей, но немногие из них смогли дать мне желаемый CSV с подробностями заголовка.

Вот что у меня сработало.

psql -d dbame -U username \
  -c "COPY ( SELECT * FROM TABLE ) TO STDOUT WITH CSV HEADER " > \
  OUTPUT_CSV_FILE.csv
7 голосов
/ 18 сентября 2015

Я написал небольшой инструмент под названием psql2csv, который инкапсулирует шаблон COPY query TO STDOUT, что приводит к правильному CSV. Его интерфейс похож на psql.

psql2csv [OPTIONS] < QUERY
psql2csv [OPTIONS] QUERY

Предполагается, что запросом является содержимое STDIN, если оно есть, или последний аргумент. Все остальные аргументы перенаправляются в psql, кроме следующих:

-h, --help           show help, then exit
--encoding=ENCODING  use a different encoding than UTF8 (Excel likes LATIN1)
--no-header          do not output a header
5 голосов
/ 18 сентября 2014

Если у вас более длинный запрос и вы хотите использовать psql, поместите запрос в файл и используйте следующую команду:

psql -d my_db_name -t -A -F";" -f input-file.sql -o output-file.csv
3 голосов
/ 30 ноября 2018

Чтобы загрузить CSV-файл с именами столбцов в качестве заголовка, используйте следующую команду:

Copy (Select * From tableName) To '/tmp/fileName.csv' With CSV HEADER;
1 голос
/ 15 апреля 2014

JackDB , клиент базы данных в вашем веб-браузере, делает это действительно легко. Особенно если ты на Heroku.

Позволяет подключаться к удаленным базам данных и выполнять запросы SQL к ним.

Источник jackdb-heroku http://static.jackdb.com/assets/img/blog/jackdb-heroku-oauth-connect.gif


Как только ваша БД подключена, вы можете выполнить запрос и экспортировать в CSV или TXT (см. Справа внизу).


jackdb-export

Примечание: Я никоим образом не связан с JackDB. В настоящее время я пользуюсь их бесплатными услугами и считаю, что это отличный продукт.

0 голосов
/ 20 февраля 2019

Я очень рекомендую DataGrip , базу данных IDE от JetBrains. Вы можете экспортировать SQL-запрос в CSV-файл и с легкостью настроить ssh-туннелирование. Когда в документации упоминается «набор результатов», они означают результат, возвращаемый SQL-запросом в консоли.

Я не связан с DataGrip, я просто обожаю продукт!

0 голосов
/ 27 февраля 2018
import json
cursor = conn.cursor()
qry = """ SELECT details FROM test_csvfile """ 
cursor.execute(qry)
rows = cursor.fetchall()

value = json.dumps(rows)

with open("/home/asha/Desktop/Income_output.json","w+") as f:
    f.write(value)
print 'Saved to File Successfully'
...