我在DatabaseA中有一个函数,我想在DatabaseB中访问,所以我在DatabaseB中创建了一个DB链接并开始访问该函数
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
从DatabaseB直接访问DatabaseA中的任何表,通过DBLink工作罚款,它只是返回此错误的函数。
该功能具有类似于下面的签名
CREATE OR REPLACE FUNCTION TestFunc(p_Number IN VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN 'Some Data';
END;
任何可能导致转换错误的想法以及可以采取哪些措施来避免错误,因为直接访问表似乎工作正常。
答案 0 :(得分:2)
这是一个已知的Oracle错误 - 如果您可以访问Metalink,请参阅注释237593.1。建议的解决方案是当9i客户端连接到它时,为10g数据库使用UTF8字符集(在这种情况下,请记住8i数据库是10g数据库的“客户端”)。或者,有一个可能有效的8i补丁。