oracle使用自定义事务时要记得添加rollback

CREATE OR REPLACE FUNCTION A_Test1(I_VAL VARCHAR2) RETURN VARCHAR2 is
     V_RESULT       VARCHAR2(500);
     PRAGMA AUTONOMOUS_TRANSACTION;
 BEGIN
     BEGIN
         FOR I IN 1..10 LOOP
             V_RESULT:=V_RESULT||'--------------';
             INSERT INTO BP_REPORT_PARAM_IMPORT VALUES ('BBBBBBBBB',V_RESULT,SYSDATE);
         END LOOP;
         COMMIT;
         RETURN 'OK';
     EXCEPTION WHEN OTHERS THEN
         --ROLLBACK;
         RETURN SQLCODE||SQLERRM;
     END;
 EXCEPTION
     WHEN OTHERS THEN
          RETURN SQLCODE||SQLERRM;
 END A_Test1;

如上的function,不加rollback时,运行会直接报错

 

 添加rollback时,即使报错也不会弹出一个框出来,而是显示错误信息。

 

posted @ 2021-01-06 22:53  masha2017  阅读(209)  评论(0编辑  收藏  举报