Postgres外部数据包装器编码问题

时间:2016-09-13 06:47:46

标签: oracle postgresql foreign-data-wrapper oracle-fdw

我尝试使用' we8mswin1252'迁移Oracle数据。编码到我的数据库,该数据库包含' UTF8'编码。

我正在使用外部数据包装器

我正在

  

invalid byte sequence error

我该怎么办?

1 个答案:

答案 0 :(得分:1)

此类错误可能由两件事引起:

  • Oracle字符串中可能只有零个字节。这在Oracle中是允许的(即使它有问题),但在PostgreSQL中是禁止的。

  • 在Oracle中很容易出现数据损坏,因为它在编码检查方面非常草率,并允许您在客户端编码和服务器编码相同时插入任意非法字节序列。

有两种方法可以解决这个问题:

  • 正确的方法:修复Oracle端的数据。 oracle_fdw会通过告诉您结果集中的哪一行导致错误来支持您。

  • 草率的方式:使用带有数据库编码sql_ascii的PostgreSQL数据库,它允许您在字符串中存储任何内容(零字节除外)。