最近遇到带有dblink的sql语句时经常出现下述错误提示:
ORA-28502: 混合数据库链接时发生内部通信错误
ORA-02063: 紧接着 line (起自 MSSQL1)
ORA-02063: 紧接着 2 lines (起自 DOCK3)
这个应该与dblink的创建方式有关系。dblink创建的脚本一般是:
CREATE PUBLIC DATABASE LINK DBLINCKNAME CONNECT TO USERNAME IDENTIFIED BY PASSWORD USING 'rg02';
这样创建后,数据库可能在解析rg02的时候出现问题,从而造成上述问题。
把上述脚本改写成以下这种方式,sql语句执行正常,就不会出现上述的错误提示了:
CREATE PUBLIC DATABASE LINK DBLINCKNAME CONNECT TO USERNAME IDENTIFIED BY PASSWORD
USING '(description=(address=(protocol=TCP) (host=10.10.20.10)(port=1521))(connect_data=(sid=SID)))';