我如何在Oracle中回滚

时间:2018-08-07 07:58:22

标签: oracle plsql transactions

我要问有关Oracle事务的问题。

INSERT INTO HAR_DENEME (ID, NAME, SURNAME)
     VALUES (140, 'tt', 'AA');

UPDATE HAR_DENEME
   SET NAME = 'osman'
 WHERE ID = 500;---> there is no data ID=500;

如何回滚第一个查询。 谢谢。

2 个答案:

答案 0 :(得分:2)

您还可以添加一个保存点并回滚到该保存点

begin
  savepoint SP_INSERT;

  INSERT INTO HAR_DENEME (ID,NAME,SURNAME) VALUES(140,'tt','AA'); 

  update HAR_DENEME set NAME='osman' where ID=500;---> there is no data ID=500;
  if SQL%ROWCOUNT = 0 then

    rollback to savepoint SP_INSERT;
  end if;

end;

您可以检查更新的行数。如果没有任何更新,可以进行回滚

答案 1 :(得分:0)

如果您的开发工具未设置为自动提交(我希望不是),则可以执行简单的命令:

rollback;