前提:
1.两个Oracle服务器A,B.
2.B上有Fuction---twkcbt03,有表----temp
3.在A上建立数据库链接CDLC.CDL指向B在A上测试:
1.select * from [email protected]能正确显示------说明数据库链接正确.
2.在SQLPLUS下执行下列测试代码,报错
declare 
i number;
begin
i:[email protected];
dbms_output.put_line(i);
end;
错误信息摘取如下:
ORA-02055:distributed update operation failed;rollback required
ORA-02064:distributed operation not supported在B上测试: 正确.
declare 
i number;
begin
i:=twkcbt03;
dbms_output.put_line(i);
end;
原本在8i下运行时好像是没问题的.现在我运行在9i下,是不是需要什么权限?

解决方案 »

  1.   

    怎样执行远程的内嵌过程
           begin
             [email protected](参数);
           end;
      

  2.   

    函数twkcbt03中都是些什么内容?是否有commit/rollback之类的语句?
      

  3.   

    twkcbt03太长了,我怕大家没耐心看,所以没贴.不过它本身没问题,在B机器上能够正确运行.  函数twkcbt03中的确有commit/rollback之类的语句,难道跟这个有关?
    急盼回复....
      

  4.   

    通过DBLINK执行存储过程,不能包含commit/rollback,否则就会报那个错。我也不知道是否可以通过设置解决这个问题。