1. 程式人生 > >Oracle PL/SQL之DDL導致的隱式提交

Oracle PL/SQL之DDL導致的隱式提交

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語法錯誤,則不會導致隱式提交,亦不會自動回滾事務: