执行oracle DDL语句要注意的问题

在执行DDL语句的时候时候,实际上的伪代码如下(摘自:
Expert.Oracle.Database.Architecture.9i.and.10g.Programming.
Techniques.and.Solutions)

Begin
Commit;
DDL-STATEMENT
Commit;
Exception
When others then rollback;
End;

注意前面先有一个commit,作一个测试例子很容易说明问题:

启动第1个回话,执行如下命令:
scott@ORCL> create table t(id char(1));
表已创建。
scott@ORCL> insert into t values ('1');
已创建 1 行。

打开第2个回话,执行:
scott@ZWSORCL> select * from t;
未选定行

回到第一个回话,执行如下或者修改T表的结构:
scott@ORCL> create table y(id char(1));
表已创建。

在第2个回话下执行:
scott@ZWSORCL> select * from t;
I
-
1

很明显,在执行DDL语句的时候,先开始有一个commit的语句。


上一篇:用阿里云对象存储OSS搭建个人网盘或企业网盘的方法


下一篇:再论执行oracle DDL语句要注意的问题