2016-04-21 7 views
0

Wir verwenden postgresql 8/psql Version 8.4. Ich information_schema.columns für die Spaltennamen abfragen und möchte eine Textdatei/Ausgabedatei so generieren:postgresql - angepasste Ausgabedatei mit durch Kommas getrennten Spalten

UNLOAD ('select 
col1, 
col2, 
col3, 
col4, 
col5) 
to more text here 

oder

UNLOAD ('select col1,col2,col3,col4,col5) to more text here 

Also, ich suche im Grunde zur Ausgabe der colname gefolgt von einem "," - colname,

Ist das möglich? Danke für die Hilfe.

Antwort

1

Dies wird eine Zeichenfolge wie das erstellen:

SELECT 'UNLOAD (''select ' || 
     array_to_string(array_agg(column_name::text), ',') || 
     ' to more text here' 
FROM information_schema.columns 
WHERE table_schema = 'public' 
AND  table_name = 'whatever' 
; 

Sie \o verwenden können, in eine Datei zu schicken, oder COPY (...) TO STDOUT verwenden.

+0

Perfekt! Das funktioniert großartig. – noober

+0

eine andere Sache. Was ist, wenn ich eine Zeichenfolge in Anführungszeichen hinzufügen muss? ''to more' text 'here'' – noober

+0

Wenn Sie zwei einfache Anführungszeichen nebeneinander in eine Zeichenfolge mit einem Anführungszeichen setzen, erhalten Sie ein einfaches Anführungszeichen in Ihrer Zeichenfolge. Sie können dem Beispiel in ''UNLOAD (' 'select'' folgen. –