2009-06-25 2 views
1

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

SELECT [email protected] ('A0484') FROM DUAL; 

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

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; 

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

+0

Каково значение для NLS_LANG для клиента базы данных A? – diederikh

+0

AMERICAN_AMERICA.WE8MSWIN1252, это от клиента, обращающегося к DatabaseA –

ответ

2

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

 Смежные вопросы

  • Нет связанных вопросов^_^