Postgres COPY多字节分隔符

时间:2015-12-09 21:49:33

标签: postgresql

我需要将大量文本和其他数据导入Postgres。该文本包含所有可能的单字节字符。这意味着我不能在我的CSV文件中选择“,”,“;”,“ - ”或任何其他单字节字符作为分隔符,因为它会被包含它的文本混淆。

有没有办法选择多字节字符作为分隔符,使用多个字符作为分隔符或以其他方式使用COPY命令来解决此问题?

我正在使用的命令:

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

1 个答案:

答案 0 :(得分:1)

  

这意味着我无法选择",",&#34 ;;"," - "或者我的CSV文件中的任何其他单字节字符作为分隔符,因为它会被包含它的文本弄糊涂。

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

e.g。如果您想表示两个值Fred "wiggle" Smithone, two,请执行以下操作:

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

在撰写本文时(9.5)copy不支持多字节字符作为分隔符。不过,您可以使用像Pentaho Kettle这样的第三方ETL工具。