【问题标题】:Clarification on why the following SQL ROLLBACK command causes an error?澄清为什么以下 SQL ROLLBACK 命令会导致错误?
【发布时间】:2014-12-23 03:01:15
【问题描述】:

我正在学习 SQL,考试准备问题有一个像这样的用户会话:

CREATE TABLE product (pcode NUMBER(2), pname VARCHAR2(10) );
INSERT INTO product VALUES (1, 'pen');
INSERT INTO product VALUES (2, 'pencil');
SAVEPOINT a;
UPDATE product SET pcode = 10 WHERE pcode = 1;
SAVEPOINT b;
DELETE FROM product WHERE pcode = 2;
COMMIT; 
SQL> DELETE FROM product WHERE pcode = 10;

在上面我们然后运行这个命令:

ROLLBACK TO SAVEPOINT a

根据测试指南,这会产生错误;还有 - 没有 SQL 语句回滚。

这是为什么?

【问题讨论】:

  • 回滚命令在哪里?还有——这是神谕吗?
  • @benji - 谢谢,添加了一个缺失的细节

标签: sql oracle oracle11g rollback


【解决方案1】:

由于您正在运行 commit 命令,因此您之前的 savepoints 会被删除,并且您无法回滚到您的保存点。

尝试删除提交并重新运行脚本。

【讨论】:

    猜你喜欢
    • 2019-09-29
    • 1970-01-01
    • 2021-10-16
    • 2020-07-05
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    相关资源
    最近更新 更多