我需要将大量文本和其他数据导入Postgres。该文本包含所有可能的单字节字符。这意味着我不能在我的CSV文件中选择“,”,“;”,“ - ”或任何其他单字节字符作为分隔符,因为它会被包含它的文本混淆。
有没有办法选择多字节字符作为分隔符,使用多个字符作为分隔符或以其他方式使用COPY命令来解决此问题?
我正在使用的命令:
COPY site_articles(id,url,title,content) FROM '/home/sites/site_articles.csv' DELIMITER '^' CSV;
答案 0 :(得分:1)
这意味着我无法选择",",&#34 ;;"," - "或者我的CSV文件中的任何其他单字节字符作为分隔符,因为它会被包含它的文本弄糊涂。
CSV has an escaping mechanism。用它。引用包含分隔符,
的字符串,如果引用的字符串包含引号字符,则引号字符加倍。
e.g。如果您想表示两个值Fred "wiggle" Smith
和one, two
,请执行以下操作:
"Fred ""Wiggle"" Smith","one, two"
在撰写本文时(9.5)copy
不支持多字节字符作为分隔符。不过,您可以使用像Pentaho Kettle这样的第三方ETL工具。