2009-06-25 2 views
1

에서 다른 캐릭터 세트와 데이터베이스 링크를 통해 기능에 액세스 난 내가 DatabaseB에 액세스 할 DatabaseA의 기능을 가지고, 그래서 내가 DatabaseB의 DB 링크를 생성 및 수행오라클

SELECT [email protected] ('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 

DBLink에서 DatabaseA의 테이블에 직접 액세스하려면 DBLink에서 벌금을 부과해야하지만이 오류를 반환하는 것은 함수입니다.

기능은 변환 오류의 원인이 될 수 있으며 테이블에 직접 액세스가 잘 작동하는 것 때문에 어떤 오류를 방지하기 위해 무엇을 할 수 있는지

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

아래 모든 아이디어와 유사한 서명이 있습니다.

+0

데이터베이스 A의 클라이언트에서 NLS_LANG 값은 무엇입니까? – diederikh

+0

AMERICAN_AMERICA.WE8MSWIN1252, 이것은 DatabaseA에 액세스하는 클라이언트의 것입니다. –

답변

2

이것은 알려진 Oracle 버그입니다. Metalink에 액세스 할 수 있으면 note 237593.1을 참조하십시오. 권장 솔루션은 pre-9i 클라이언트가 연결되어있을 때 10g 데이터베이스 용 UTF8 문자 세트를 사용하는 것입니다 (8i 데이터베이스는이 경우 10g 데이터베이스의 "클라이언트"임을 기억하십시오). 또는 작동 할 수있는 8i 패치가 있습니다.