【问题标题】:Save point never created error保存点从未创建错误
【发布时间】:2012-11-09 06:21:20
【问题描述】:

我正在尝试在 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;

但我不断从 SQL Developer 收到此错误

ROLLBACK TO SAVEPOINT1 错误报告:SQL 错误:ORA-01086: savepoint 'SAVEPOINT1' 从未在此会话中建立或无效 01086. 00000 - “保存点 '%s' 从未建立” *原因:试图回滚到一个从未建立的保存点。 *行动:

【问题讨论】:

    标签: sql windows-7 oracle11g savepoints


    【解决方案1】:

    DDL 语句——在这种情况下是ALTER TABLETRUNCATE TABLE——在执行之前和之后发出隐式提交。创建保存点的事务在执行第一个ALTER TABLE 语句之前结束。由于只能回滚到当前事务中定义的保存点,所以发出DDL语句后不能回滚到保存点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 2014-10-19
      • 2021-12-16
      相关资源
      最近更新 更多