Оракул переноса в postgresql недопустимая последовательность байтов для кодировки "UTF8": 0x00

Я мигрирую приложение из оракула в postgresql. В одной из функций, которые я уже перенес, я копирую данные из другой базы данных oracle (ссылка на db в oracle, расширение oracle_fdw в postgresql) из нескольких таблиц в локальную таблицу в моей базе данных postgresql. Тем не менее, я получаю следующую ошибку:

invalid byte sequence for encoding "UTF8": 0x00

Я видел, что у некоторых людей была такая проблема на этом форуме, но они не пытались копировать данные непосредственно из удаленной базы данных (они загружали данные из дампа или из CSV..).

Какая-то идея, что я могу сделать?

2 ответа

Решение

PostgreSQL не допускает символ "ноль" в символьных строках.

Вам придется очистить данные Oracle, прежде чем вы сможете извлечь их из PostgreSQL.

Теперь он работает с 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');
Другие вопросы по тегам