Вот сценарий:Oracle CLOB над DBLink с разной кодировкой
Oracle A: кодировок WE8ISO8859P1
Oracle B: кодировок WE8MSWIN1252
Oracle < - DBLink -> Oracle B
Я не могу получить доступ к Oracle B напрямую, проблемы с брандмауэром :(
Мне нужно получить некоторые двоичные файлы из OracleB, и эти файлы находятся в столбце типа CLOB (не спрашивайте меня, почему и я не могу перейти на BLOB).
Я использую «select insert» для получения файлов от B до A и их преобразования в двоичный код с использованием функции clob_to_blob, найденной here.
Я получаю некоторые поврежденные файлы, и я считаю, что это потому, что Oracle конвертирует WE8MSWIN1252 в WE8ISO8859P1 автоматически через dblink (ну, столбец CLOB, так что это текст, правильно?).
Я никак не могу изменить кодировки баз данных.
Есть ли обходной путь для этого?
Заранее спасибо
Привет, Гэри, Нет, если я использую функцию от моего клиента (даже с @dblinkname), я все равно получаю ORA-22992 :( Я думаю, что единственное, что вы может делать с LOBS над dblinks - это вставка/выбор. Файлы удалены в удаленной системе :( Ненавижу, когда вам приходится платить за чужое плохое решение в прошлом (двоичные файлы как клобы ...). – andrecarlucci
Наконец, мне удалось получить представление, созданное с удаленной стороны. Это представление преобразует clob в blob по-прежнему на удаленной стороне, а затем я могу использовать insert/select из локальной базы данных в любое время, когда захочу. Это сработало! Tks для идеи представления. – andrecarlucci