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

问题描述 投票:0回答:1

我试图将一个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;

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

谢谢

database postgresql copy postgresql-10
1个回答
0
投票

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

试试这个:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.