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

COPY Command with comma in string values - Postgresql 10

我正在尝试将 dat 文件的内容复制到 PostgreSQL 中的 table,但出现错误。 dat 文件具有以下内容:

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

Table 架构:

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;

还是一样的错误.... 有人可以帮我把 dat 文件的内容复制到数据库吗?

谢谢

我怀疑这是因为 Postgres 中 copy 命令的默认 quote 字符是双引号,它出现在您的 csv 中,而是单引号。

试试这个:

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

注意需要转义单引号,导致 4 个单引号。