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;

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

谢谢

4

1 回答 1

1

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

尝试这个:

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

注意需要对单引号进行转义,产生4个单引号。

于 2018-03-02T01:45:23.083 回答