问题:Postgres 中未终止的 CSV 引用字段

我正在尝试使用复制命令将一些数据插入到我的表中:

copy otype_cstore from '/tmp/otype_fdw.csv' delimiter ';' quote '"' csv;

我有这个答案:

ERROR: unterminated CSV quoted field

我的 CSV 文件中有一行出现问题:

533696;PoG;-251658240;from id GSW C";

这是唯一的双引号行,我无法删除它,所以你对我有什么建议吗?

先感谢您

解答

如果您的 csv 中有这样的行:

533696;PoG;-251658240;from id GSW C";

这实际上意味着/显示字段没有被引用,只要字段内没有分隔符,它仍然是完全有效的 csv。

在这种情况下,解析器应该被告知字段没有被引用。

因此,不要使用quote '"'(这实际上是告诉解析器引用的字段以及为什么会出现错误),而应该使用quote 'none'之类的东西,或者不使用 quote 参数(我不知道 Postgres,所以我可以) t 为您提供执行此操作的确切选项)。

好的,我做了一个快速查找的参数。似乎没有真正的选项可以关闭引用。剩下的唯一选择是提供一个从未在数据中使用过的引号字符。

quote E'\b'(退格)似乎工作正常。

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐