0

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

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

坏行可以在这个文件中找到。

当我尝试导入这个单行文件时它仍然失败。

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

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

我使用以下命令复制文件

猫坏线2 | psql -c "从带分隔符的标准输入复制 osm_nodes ' '"

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

我使用(PostgreSQL)9.2.3。

谢谢你的帮助。

4

1 回答 1

0

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

于 2013-07-10T23:01:16.740 回答