Postgres проблема с кодировкой сторонних данных
Я пытаюсь перенести данные Oracle с помощьюwe8mswin1252
'кодирование в моей базе данных postgres, которая имеет "UTF8
кодировка.
Я использую стороннюю упаковку данных.
я собираюсь
invalid byte sequence error
Что я должен делать?
1 ответ
Такие ошибки могут быть вызваны двумя причинами:
В ваших строках Oracle может быть ноль байтов. Это разрешено в Oracle (хотя это проблематично), но запрещено в PostgreSQL.
Повреждение данных в Oracle легко получить, потому что оно довольно небрежно с проверками кодирования и позволяет вставлять произвольные недопустимые последовательности байтов, когда кодировка клиента и серверная кодировка совпадают.
Есть два подхода к решению этой проблемы:
Правильный путь: исправить данные на стороне Oracle.
oracle_fdw
поддержит вас, сообщив, какая строка в наборе результатов вызвала ошибку.Небрежный способ: использовать базу данных PostgreSQL с кодировкой базы данных
sql_ascii
, что позволит вам хранить что-либо в строке (кроме нулевых байтов).