在字符串值中使用逗号复制命令 - 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 个单引号。
我正在尝试将 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 个单引号。