2017-09-07 94 views
0

我想通過使用下面的查詢將postgres表數據提取到CSV,默認情況下它給'''作爲分隔符,但在表中的數據有多個分隔符,所以我想通過獲取數據「」作爲分隔符或force_quotePostgres數據以csv與強制引號

psql -h host -p port -U user -d dbname --no-align -c "SELECT * from sample" > D:\sample.csv 

任何一個可以拉我出去從這個issue..thanks提前

+0

使用'\ copy':https://www.postgresql.org/docs/current/static/app-psql.html#APP-PSQL-META-COMMANDS-COPY –

回答

0

爲@a_horse_with_no_name建議,你可以用水木清華不喜歡它:

psql -h host -p port -U user -d dbname --no-align -c "\copy (select * from sample) to stdout with (format csv, force_quote *, quote \$\$'\$\$)" > D:\sample.csv 

或減少代碼的簡潔版本:

psql -h host -p port -U user -d dbname --no-align -c "\copy sample to 'D:\sample.csv' with (format csv, force_quote *, quote \$\$'\$\$)" > 

當然你可以改變\$\$'\$\$'''',如果你發現任何更具可讀性...

+0

其錯誤提示 –

+1

請更新錯誤信息,或至少把那麼作爲評論?.. –

0

做的一項工作了Talend,如:

tpostgresinput -> tmap -> tfiledelimitedOutput 

而且把你的「選擇」條件在tpostgres查詢輸入。

+0

可以請你告訴我如何將postgres數據移動到s3而不更改時間戳格式..實際時間戳:07 09 2016 22:22:34更改時間戳:07 sep 2016 22: 22:34 .. –