我尝试使用' we8mswin1252
'迁移Oracle数据。编码到我的postgres数据库,该数据库包含' UTF8
'编码。
我正在使用外部数据包装器。
我正在
invalid byte sequence error
我该怎么办?
答案 0 :(得分:1)
此类错误可能由两件事引起:
Oracle字符串中可能只有零个字节。这在Oracle中是允许的(即使它有问题),但在PostgreSQL中是禁止的。
在Oracle中很容易出现数据损坏,因为它在编码检查方面非常草率,并允许您在客户端编码和服务器编码相同时插入任意非法字节序列。
有两种方法可以解决这个问题:
正确的方法:修复Oracle端的数据。 oracle_fdw
会通过告诉您结果集中的哪一行导致错误来支持您。
草率的方式:使用带有数据库编码sql_ascii
的PostgreSQL数据库,它允许您在字符串中存储任何内容(零字节除外)。