原帖由 sxlcom 于 2008-9-25 11:23 发表
zxqsharp
------------------------
你在匿名块是可以通过,但在存储过程就不行
如:
create or replacePROCEDURE aaasssdddas
begin
declare
o_Errmsgvarchar2(200);
begin
insert into aabbcc(aaa,sss) values('******aaasssddd开始******',sysdate);
end;
exception
when others then
rollback;
dbms_output.put_line(substr(sqlerrm,1,200));
o_Errmsg := substr(sqlerrm,1,200);
INSERT INTO day_synchronization_track (deal_time,deal_desc) VALUES (sysdate,o_Errmsg);
COMMIT;
end;
在存储过程中用自治事务
create or replacePROCEDURE aaasssdddis
begin
declare
o_Errmsgvarchar2(200);
pragmaautonomous_transaction; --加上这句就可以了
begin
insert into aabbcc(aaa,sss) values('******aaasssddd开始******',sysdate);
end;
exception
when others then
rollback;
dbms_output.put_line(substr(sqlerrm,1,200));
o_Errmsg := substr(sqlerrm,1,200);
INSERT INTO day_synchronization_track (deal_time,deal_desc) VALUES (sysdate,o_Errmsg);
COMMIT;
end; |