2015-12-09 120 views
0

我有大量的文本和其他數據,我需要導入到Postgres中。該文本包含所有可能的單字節字符。這意味着我不能在我的CSV文件中選擇「,」,「;」,「 - 」或任何其他單字節字符作爲分隔符,因爲它會被包含它的文本混淆。Postgres COPY多字節分隔符

有沒有辦法選擇一個多字節字符作爲分隔符,使用多個字符作爲分隔符或以其他方式使用COPY命令來解決這個問題?

命令我使用的是:

COPY site_articles(id,url,title,content) FROM '/home/sites/site_articles.csv' DELIMITER '^' CSV; 

回答

1

這意味着我不能選擇「」,‘’,‘ - ’或任何其他單字節字符作爲我的CSV的分隔符文件,因爲它會被包含它的文本弄糊塗。

CSV has an escaping mechanism。用它。引用包含分隔符,的字符串,如果引用的字符串包含引號字符,則將引號字符加倍。

例如如果你想表示兩個值Fred "wiggle" Smithone, two,你會做這樣的:

"Fred ""Wiggle"" Smith","one, two" 

在寫作(9.5)copy不支持多字節字符作爲分隔符的時間。不過,您可以使用Pentaho Kettle等第三方ETL工具。