Доступ к функции через базу данных Link с различными кодировками в Oracle - PullRequest
1 голос
/ 25 июня 2009

У меня есть функция в DatabaseA, к которой я хочу получить доступ в DatabaseB, поэтому я создал ссылку на базу данных в DatabaseB и начал получать доступ к функции как

SELECT function_name@dblink ('A0484')  FROM DUAL;

Это привело к следующей ошибке

ERROR at line 1:
ORA-12703: this character set conversion is not supported
ORA-06512: at line 1

При копании я нашел ниже информацию о базах данных

DatabaseA:
   Version-8i
   Charset-US7ASCII

DatabaseB:
   Version-10g
   Charset-AL32UTF8

Прямой доступ к любой из таблиц в DatabaseA из DatabaseB через DBLink работает штрафами, только эта функция возвращает эту ошибку.

Функция имеет подпись, аналогичную приведенной ниже

CREATE OR REPLACE FUNCTION TestFunc(p_Number IN VARCHAR2) RETURN VARCHAR2 IS
BEGIN
     RETURN 'Some Data';
END;

Любые идеи о том, что может быть причиной ошибки преобразования и что можно сделать, чтобы избежать ошибки, поскольку прямой доступ к таблицам работает нормально.

1 Ответ

2 голосов
/ 25 июня 2009

Это известная ошибка Oracle - если у вас есть доступ к Metalink, см. Примечание 237593.1. Рекомендуемое решение - использовать набор символов UTF8 для базы данных 10g, если к ней подключены клиенты до 9i (помните, что база данных 8i является «клиентом» базы данных 10g в этом случае). В качестве альтернативы есть исправление 8i, которое может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...