将文件导入PostgreSQL时出错

时间:2013-07-10 22:40:44

标签: postgresql

我正在尝试使用“COPY”命令将制表符分隔值文件导入PostgreSQL数据库。问题是在错误消息的行上失败

ERROR: invalid byte sequence for encoding "UTF8": 0x00

可以在this file中找到错误的行。

尝试导入此单行文件时仍然失败。

我试图打开文件,但它看起来像一个普通的文本文件,我无论如何都找不到解决这个问题。该表的架构看起来像

CREATE TABLE osm_nodes (
  id BIGINT,
  longitude double precision,
  latitude double precision,
  tags TEXT
);

我使用以下命令复制文件

cat bad_lines2 | psql -c“COPY osm_nodes FROM STDIN WITH DELIMITER''”

(注意:上面的分隔符是制表符)

我使用(PostgreSQL)9.2.3。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我发现了错误。该文本包含“\ 09”,它被翻译为制表符并导致此问题。每个“\”应该用“\”进行转义,以便正确插入。