保存点永远不会创建错误

Ant*_*yrd 3 sql oracle11g windows-7 savepoints

我正在尝试在Oracle 11g中创建一个保存点.

ALTER TABLE ORDERS
DISABLE CONSTRAINT ORDERS_C_ID_FK;

DELETE FROM CUSTOMER;

SELECT * FROM CUSTOMER;

ROLLBACK;

SELECT * FROM CUSTOMER;

SAVEPOINT SAVEPOINT1;

ALTER TABLE ORDERS
DISABLE CONSTRAINT ORDERS_OS_ID_FK;

ALTER TABLE ORDER_LINE
DISABLE CONSTRAINT ORDER_LINE_O_ID_FK;

TRUNCATE TABLE CUSTOMER;
TRUNCATE TABLE ORDER_SOURCE;
TRUNCATE TABLE ORDERS;
DELETE FROM ORDERS;

ROLLBACK TO SAVEPOINT1;
Run Code Online (Sandbox Code Playgroud)

但是我一直从SQL Developer那里得到这个错误

ROLLBACK TO SAVEPOINT1错误报告:SQL错误:ORA-01086:保存点'SAVEPOINT1'从未在此会话中建立或无效01086. 00000 - "保存点'%s'从未建立"*原因:尝试回滚到保存点从未建立过.*行动:

Jus*_*ave 6

DDL语句ALTER TABLE- TRUNCATE TABLE在这种情况下 - 在执行它们之前和之后发出隐式提交.创建保存点的事务在ALTER TABLE执行第一个语句之前结束.由于您只能回滚到当前事务中定义的保存点,因此在发出DDL语句后无法回滚到保存点.