我正在尝试使用“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。
感谢您的帮助。
答案 0 :(得分:0)
我发现了错误。该文本包含“\ 09”,它被翻译为制表符并导致此问题。每个“\”应该用“\”进行转义,以便正确插入。