场景
    建了一个DBLINK,测试成功
问题
    在命令窗口中查询成功,但却在存储过程中无法执行成功(报编译错误)譬如:
    在命令窗口中:insert into <xxxx>@<dblink> values(....) 成功!
    但相同的语句放在存储过程中,却报存储过程编译错误报错如下
    PROCEDURE ISM.P_DATA_EXTRACTION
    On line:  5
    PL/SQL: ORA-04052: 在查找远程对象 ISM.T_ISM_WARNING_DATA@SJISM 时出错
    ORA-00604: 递归 SQL 级别 1 出现错误
    ORA-03120: 双工转换例行程序: 整数溢出
    ORA-02063: 紧接着 line (起自 SJISM)

解决方案 »

  1.   

    你的dblk是如何创建的。是否指定了用户名和密码。
      

  2.   

    还有一种情况,就是当前dblink数过多了,一般oracle里面open_dblink数是4个,可以检查下你的参数设置。
      

  3.   

    检查字符集设置是否和远程一致,检查sql语句中是否有大对象
      

  4.   

    拜托各位看清楚问题表述
    “在命令窗口中:insert into <xxxx>@ <dblink> values(....) 成功! 
        但相同的语句放在存储过程中,却报存储过程编译错误 ”
      

  5.   

    字段里面是否有blob or clob ?
      

  6.   

    ORA-03120: 双工转换例行程序: 整数溢出-- 错误已经很明显了!
      

  7.   

    这个错误是因为目标库的open_cursor太少'
      

  8.   

    将你的golbal_names参数设为false就应该能ok!!!