ITPub博客

首页 > 数据库 > Oracle > DDL操作的自动提交

DDL操作的自动提交

原创 Oracle 作者:壹頁書 时间:2014-01-28 23:17:38 0 删除 编辑
Oracle的autocommit永远是false.
但是在执行DDL操作之后,会隐式提交,所以DDL操作不能回滚。

其实在DDL操作之前,也有一个隐式提交

测试如下代码:

  1. create table test(id int);
  2. create table t1(id int);

  3. declare
  4. begin
  5.     insert into test values(10);
  6.     execute immediate 'create table t1(id int);';
  7.     rollback;
  8. end;
  9. /
新建一个表test和t1,在代码中向test表插入一行,然后动态SQL建表。
因为t1表已经存在,所以动态SQL建表将报错,模拟DDL运行异常的情况。
这个时候进行回滚,是不能撤销test表中插入的数据的。
因为在DDL运行之前,已经隐式的提交了事物。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1076352/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 加密PL/SQL代码
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    5957006