執行oracle DDL語句要注意的問題

lfree發表於2007-01-08

在執行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個回話,執行如下命令:
> create table t(id char(1));
表已建立。
> insert into t values ('1');
已建立 1 行。

開啟第2個回話,執行:
> select * from t;
未選定行

回到第一個回話,執行如下或者修改T表的結構:
> create table y(id char(1));
表已建立。

在第2個回話下執行:
> select * from t;
I
-
1

很明顯,在執行DDL語句的時候,先開始有一個commit的語句。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-82965/,如需轉載,請註明出處,否則將追究法律責任。

相關文章