我正在将一个应用程序从oracle迁移到postgresql。在我已经迁移的一个函数中,我从一个不同的oracle db ( oracle中的db链接,postgresql中的oracle_fdw扩展)将数据从几个表复制到postgresql db中的一个本地表。然而,我得到了下一个错误:
invalid byte sequence for encoding "UTF8": 0x00
我看到有些人在这个论坛上遇到了这种问题,但他们没有尝试直接从远程数据库复制数据(他们从转储或csv加载数据。)。
某种想法我能做什么?
发布于 2017-07-24 20:09:47
PostgreSQL不允许在字符串中使用“零”字符。
在从PostgreSQL检索数据之前,您必须对Oracle数据进行清理。
发布于 2020-12-16 23:42:35
现在它可以与oracle_fdw 2.3.+一起工作了,下面是我使用的代码
select 'ALTER FOREIGN TABLE "'||table_schema||'"."'||table_name||'" ALTER COLUMN "'||column_name||'" OPTIONS (ADD strip_zeros ''true'');'
from information_schema."columns" c
where table_name ='my_foreign_table_name'
and table_schema ='my_schema_name_where_foreign_table_created'
and udt_name in ('varchar', 'bpchar');https://stackoverflow.com/questions/45280175
复制相似问题