2009-06-25 8 views
1

で異なる文字セットを使用したデータベースリンクを介して機能にアクセスする私は私がDatabaseBにアクセスしたいDatabaseAで機能を持っているので、私はDatabaseBでDBリンクを作成して行うは、Oracle

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のテーブルに直接アクセスするには、このエラーを返す関数のみが必要です。

関数は、変換エラーが発生することができ、テーブルへの直接アクセスが正常に動作するように見えるので、何がエラーを回避するために何ができるか

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にアクセスできる場合は、ノート237593.1を参照してください。推奨される解決策は、pre-9iクライアントが接続しているときに10gデータベース用のUTF8キャラクタ・セットを使用することです(この場合、8iデータベースは10gデータベースの「クライアント」です)。あるいは、8iパッチが動作するかもしれません。