如何调试Postgres复制命令失败

时间:2012-08-28 07:14:58

标签: postgresql sqlbulkcopy postgresql-8.4

我有大约75k的记录,我使用复制命令将其加载到Postgres表中,该命令失败。我得到了一个例外

  

错误:编码“UTF8”的字节序列无效:0xbd

现在我需要找到哪条线有此条目。有没有办法做到这一点?我正在考虑启用一些可能有用的postgres日志记录或任​​何其他解决方案 注意:我只收到一个特定文件的问题。其他文件正在加载而没有问题

1 个答案:

答案 0 :(得分:1)

无论我使用COPY还是\copy并通过重定向或-f提供文件,我似乎总是在错误中获得一个行号。

ERROR:  invalid byte sequence for encoding "UTF8": 0xa3
CONTEXT:  COPY z, line 3

如果只有几个坏字符并且您只想剥离它们,则可以使用iconv(假设您使用的是类似unix的系统)。

iconv -c --from=utf8 --to=utf8 /tmp/badchars.txt > /tmp/stripped.txt

如果你想查看被删除的内容,你总是可以对之前版+后版本运行diff。