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时,即使报错也不会弹出一个框出来,而是显示错误信息。