xiongjiahui288
xiongjiahui288
2014-12-22 10:09

ORA-00604: 递归SQL级别1出现错误, ORA-02067:要求事务处理或保存回退点

  • 递归
  • oracle
  • 事务处理
  • ora

报的错如题:
ORA-00604: 递归SQL级别1出现错误
ORA-02067:要求事务处理或保存回退点

A服务器oracle建立dblink,存储过程的内容是:往B服务器中oracle的表里插入数据。 在客户端访问调用此存储过程的时候报以上错误。

目前为了报错不显示在客户端只能用rollback,但是这样的话数据就插入不进去了。

代码如下,请大神们帮帮忙:

 --【游标查询/插入】
declare
CURSOR c_job IS
     select ID,AuditP,AuditD,AuditIdea from LX_YW_ProjectInfoD2
     where ToRow_guid=Row_guid and ID not in(select GUOCHENG_ID from TA_SP_GUOCHENG@LXZJJZW where INSTANCE_ID=IDKey);
c_row c_job%rowtype;
BEGIN
     for c_row in c_job loop

         select st_name into Audit_P from sys_staffdef where st_id=c_row.AuditP;
         --
         insert into TA_SP_GUOCHENG@LXZJJZW
         (GUOCHENG_ID,INSTANCE_ID,TACHE_NO,TACHE_NAME,TRANSACTOR_NAME,TRANSACT_IDEA,TRANSACT_TIME,REMARK,CREATE_DATE,LAST_UPDATETIME,DATA_SOURCE,IS_EXCHANGE,SYSTEM_SOURCE)
         select
         ID,SHILI_ID,GC_Code,GC_Name,Audit_P,AuditIdea,AuditD,'',Now_Date,Now_Date,'XXXX','N','2'
         from LX_YW_ProjectInfoD2 where ToRow_guid=Row_guid and ID=c_row.ID;

     end loop;

END

commit;
exception  when others then   rollback;
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答