Oracle PL/SQL之DDL導致的隱式提交
阿新 • • 發佈:2018-12-31
1. 如果DDL語法正確,即使執行失敗,也會導致隱式提交:(建立表DEPT1,雖然表DEPT1已經存在,並提示名稱已有現有物件使用,仍然隱式提交INSERT INTO記錄)
1)、單個sql
2)、儲存過程
CREATE OR REPLACE PROCEDURE P_INSERT_DEPT
AS
BEGIN
INSERT INTO dept
VALUES(70,'研發部','深圳');
DBMS_OUTPUT.PUT_LINE('插入成功!');
execute immediate('create table dept1 as select * from dept');
END;
呼叫儲存過程:BEGIN P_INSERT_DEPT; END; 報錯提示表已存在,但INSERT INTO仍然被隱式提交。
DEPTNO DNAME LOC
50 市場部 深圳
70研發部 深圳
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
2、如果DDL語法錯誤,則不會導致隱式提交,亦不會自動回滾事務: