2015-05-06 34 views
0

例如COPY簡易爆炸裝置,說我有輸出:能爲CSV文本變量在PostgreSQL的

SELECT 
$text$col1, col2, col3 
0,my-value,text 
7,value2,string 
0,also a value,fort 
$text$; 

有沒有可能來填充表直接從它的COPY命令?

回答

1

排序您必須去掉示例的前兩行和最後一行才能使用COPY的數據。您可以通過使用關鍵字PROGRAM做到這一點:

COPY table_name FROM PROGRAM 'sed -e ''1,2d;$d'' inputfile'; 

這是直接的,你正在做一切從COPY命令和間接在你所設置的外部程序來過濾你的輸入。

+0

超級關閉,但是這個Postgres實例正在Windows上運行。我試過使用: PROGRAM'echo $ d'inputfile; 但是這看起來不太合適。我認爲我的批處理腳本和字符串參數是棘手的。 – nclu

+0

如何讓您的輸出顯示在命令行上?還要知道有'sed'的Windows命令行實現。 –

+0

我最初並沒有把它出現在命令行上。只是將一些默認數據格式化爲csv,然後將其放在$ text $標記中,全部放在plpgsql中。我希望能夠使用該格式進行復制,同時將csv格式保存在我的sql腳本中。 – nclu