ORA-04052: 在查找远程对象 [email protected] 时出错
ORA-00604: 递规 SQL 层 1 出现错误
ORA-02085: 数据库连接 JFLINK.US.ORACLE.COMÓëYPALEX.US.ORACLE.COM相连接出现上面的错误是什么问题??我现在只是本机的不同用户表空间的访问。

解决方案 »

  1.   

    必须先对被调用的存储过程及该存储过程操作过的所有表、视图等授权(resource权限),否则失败
      

  2.   

    访问本地不同用户,只要在对象(如表)前加用户名就可以了。如  user.table
      

  3.   

    建立数据库链接(dblink)exec  yourprocedurename@dblinkname
      

  4.   

    不同的数据库可以建立数据链路. (就是 dblink)
    就可以了.
      

  5.   

    我就是用的dblink可是提示过程未定义
      

  6.   


     建立数据链路:        create database link  NewLink
            connected to Username identified by
            password
            using 'sidname'
     使用远程过程调用:        
                
       1) 创建引用远程数据表的本地过程
                   
       2) 创建由本地应用程序调用的远程过程
                   
          execute  proc@linkname
                      
       规则:
         过程的正确定位取决于数据的分布及数据的使用方式。
         重点应放在将数据查询中通过网络传递的数据量最小化。
         过程所在的数据库应含有进程操作中使用的大多数数据。     示例:
           create procedure MY_RAISE(MY_EMP_NO IN NUMBER,
           RAISE IN NUMBER)
           as 
           begin
               Update EMPLOYEE@HR_LINK
               set Salary=Salary + Raise
                where Empno=MY_EMP_NO 
           end ;
                   
       策略: 因为此过程只访问远程节点上的一个表,可考虑将
             此进程移到远程数据库上,并且从进程的 from子句
             中删除对这个数据库链接的引用。然后,通过使用
             数据库链接从本地数据库调用该过程。
                         
              Execute MY_RAISE@HR_LINK (1234, 10000)   好处: 所有的进程处理均在包含操作数据的数据库中进行。
             远程过程调用将把完成此进程处理所需要的网络流量
             最小化.
                      
       简化:  创建同义词(SYNONYM)
               create synonym MY_RAISE for MY_RAISE@HR_LINK
                execute MY_RAISE(1234,10000)