Chciałbym wykonać zapytanie z powłoki (nie w interaktywnym kliencie psql) i zlecić wydruk wersji CSV lub TSV wyjścia do STDOUT. Jak to zrobić z psql
lub jednym z narzędzi wiersza poleceń PostgreSQL?Jak wydrukować wynik zapytania PostgreSQL w formacie CSV lub TSV z wiersza poleceń?
Odpowiedz
Jeśli używasz PostgreSQL 8.2 lub nowszy, to wykorzystać do CSV:
psql -c "COPY (<select query>) TO STDOUT WITH CSV"
a to z TSV, z odpowiednich wartości null:
psql -c "COPY (<select query>) TO STDOUT WITH NULL AS ''"
Formularz CSV będzie prawidłowo zacytować żadnych pól, które zawierają znak cudzysłowu. Zapoznaj się z dokumentacją PostgreSQL dla konkretnej wersji, aby uzyskać więcej informacji i opcji dotyczących KOPIOWANIA.
edycja: Korzystanie -F
pomocą przecinków poprzez -F
i używać "tryb wyjścia niezestrojone stół" -A
:
psql my_database -U myuser -A -F , -c "select * from mytable"
Można określić separator pól z parametrem wiersza poleceń -F do psql
Również możliwe jest polecenie copy który pozwala na określenie nagłówka, ograniczniki i opcje cytując
psql my_database -U my_user -c "copy (select a.id,b.id from my_table_a as a inner join my_table_b as b on b.id = a.id) to STDOUT"
Począwszy od odpowiedzi Bohemian za znalazłem te flagi przydatne:
psql my_database -U myuser -A -F , -X -t -f /path/to/query.sql -o /path/to/output.csv
- wyjście aligné mode: -A
- Użyj przecinka jako ogranicznika pola: -F,
- Nie czytaj psqlrc: -x
- Krotki tylko (bez nagłówka/stopki): -t zapytania zawierające SQL
- pliku: -f plik
- wyjściowe: -o
To * nie * działa tak, jak można by się spodziewać, jeśli wypisujesz pole tekstowe z przecinkiem. –
Aby określić TSV użyć separatora '\ t'
psql my_database -U myuser -F'\t' --no-align -f mysqlfile.sql -o outputfile.tsv
Aby określić csv użyć separatora ''
psql my_database -U myuser -F',' --no-align -f mysqlfile.sql -o outputfile.csv
- 1. Jak wysłać wynik zapytania w formacie CSV?
- 2. Jak ładnie wydrukować XML z wiersza poleceń?
- 3. Wykorzystanie wynik zapytania w funkcji (PostgreSQL 8.3)
- 4. Jak wyświetlić wynik wiersza poleceń w Racket?
- 5. Jak eksportować właściwy TSV?
- 6. Eksportuj wynik zapytania jako CSV do PHP
- 7. Jak korzystać z csslint z wiersza poleceń?
- 8. Export wynik zapytania w pliku txt do Pervasive/csv
- 9. Jak wydrukować strukturę tabeli z postgresql?
- 10. Jak wydrukować time_t w określonym formacie?
- 11. Jak wydrukować wynik skryptu powłoki w CMake?
- 12. Wynik z ActiveRecord :: Base.connection.execute (sql) - PostgreSQL
- 13. Ustaw wynik zmiennej, z zapytania
- 14. Wejście z wiersza poleceń
- 15. PostgreSQL - Iteracja wyników zapytania
- 16. Przeczytaj csv z określonego wiersza
- 17. Jak ustawić strefę czasową z wiersza poleceń?
- 18. Jak zwijanie wiersza poleceń?
- 19. Jak wydrukować właściwości hadoop w wierszu poleceń?
- 20. jak zrobić interfejs wiersza poleceń lub interpretera w pythonach
- 21. Jak napisać aplikację z wiersza poleceń OSGI
- 22. Jak wywołać GUI Graphviz z wiersza poleceń?
- 23. Jak korzystać z jarjar z wiersza poleceń?
- 24. Dobry i skuteczny czytnik CSV/TSV dla języka Java
- 25. Jak przekształcić wynik zapytania Linq w XML?
- 26. gdb - jak wydrukować wynik oceny dla C++
- 27. Jak owinąć mój wynik zapytania z pojedynczym notowania
- 28. Jak obliczyć najbliższych sąsiadów za pomocą Weka z wiersza poleceń?
- 29. Jak uruchomić Scala + specyfikacje2 z wiersza poleceń?
- 30. Uruchom ColdFusion z wiersza poleceń
Uwielbiam Postgres! – dan
To naprawdę sprawia, że te rzeczy są łatwe, prawda? Wyobraźmy sobie odpowiedź niektórych "dużych dostawców baz danych" ... Najpierw zainstaluj pakiet 64 megapikseli, a następnie uruchom to narzędzie eksportowe, które ma najbardziej tajemniczą składnię, jaką można sobie wyobrazić. Uważaj, aby nie usunąć całej bazy danych podczas jej używania.:) –