COPY命令在字符串值中使用逗号 - Postgresql 10

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了COPY命令在字符串值中使用逗号 - Postgresql 10相关的知识,希望对你有一定的参考价值。

我试图将一个dat文件的内容复制到PostgreSQL中的表但是收到错误。 dat文件包含以下内容:

1,'"{{text}}","{{NoName}}":"{test},{OneName}:{test}"'

表格架构:

Create Table TestInfo (ID int, TestValues text);

我运行以下查询:

COPY Test from '/opt/Data/TestInfo.dat' WITH DELIMITER AS ',' NULL AS '';

但得到以下错误

ERROR:  extra data after last expected column

甚至尝试过

COPY Test from '/opt/Data/TestInfo.dat' WITH DELIMITER AS ',' csv;

仍然是相同的错误....有人可以帮助我将数据文件的内容复制到数据库?

谢谢

答案

我怀疑这是因为因为Postgres中quote命令的默认copy字符是双引号,并且它出现在你的csv中,它只是一个单引号。

试试这个:

COPY Test from '/opt/Data/TestInfo.dat' WITH DELIMITER AS ',' QUOTE AS '''' NULL AS '';

请注意需要转义单引号,从而产生4个单引号。

以上是关于COPY命令在字符串值中使用逗号 - Postgresql 10的主要内容,如果未能解决你的问题,请参考以下文章

NumberFormat 从值中删除逗号 ( , )?

Snowflake COPY INTO 在数据值中的双引号值上失败

使用 .net 的 (C#) System.Net.Cookie 处理 cookie 值中的逗号

如何使用 R 将数据帧/矩阵写入 CSV,但值中有逗号

如何将逗号添加到数据框中的现有值中?熊猫

如何在 Oracle 中修剪逗号分隔值中的前导零?