Oracle DDL 執行過程
在Oracle中任何一個SQL 都在一個Transaction 當中,在執行DDL 語句時
Oracle會提交在此Session 中之前的DML 操作,我們稱之為隱式提交。
用下面語句能清楚的看到DDL 是如何提交DML 操作的。
DDL 的執行過程如下:
Begin
Commit;
DDL statements
Commit;
Exception
do rollback operation
End;
可以看出Oracle 在執行DDL 之前就已經執行了Commit,而根本不在乎
這個DDL 是否是正常還是非正常執行。
所以我們在實現業務邏輯時一定要清楚Transaction 的執行過程。
下面我用一個例子來demo DDL 失敗後程式依然提交的例子
Example:
SQL Session 1:> CREATE TABLE demo (name VARCHAR2(30));
TABLE created.
SQL Session 2:> DESC demo;
Name Null? Type
----------------------------------------- -------- ----------------------------
NAME VARCHAR2(30)
SQL Session 1:> INSERT INTO demo VALUES('A');
1 row created.
SQL Session 1:> INSERT INTO demo VALUES('B');
1 row created.
SQL Session 1:> SELECT * FROM demo;
NAME
------------------------------
A
B
SQL Session 2:> select * from demo;
no rows selected
SQL Session 1:>create index idx_demo on demo (age desc);
create index idx_demo on demo (age desc)
*
ERROR at line 1:
ORA-00904: "AGE": invalid identifier
SQL Session 2:>select * from demo;
NAME
------------------------------
B
A
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/34596/viewspace-987034/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle DDL 執行過程【Blog 搬家】Oracle
- 【DDL】DDL執行過程及其隱式COMMIT行為的探查與演示MIT
- Oracle ASM Rebalance執行過程OracleASM
- Oracle SQL 語句的執行過程OracleSQL
- Oracle 儲存過程中的DDL語句Oracle儲存過程
- 理解oracle執行sql語句的過程OracleSQL
- ORDER BY 在oracle中執行的大概過程Oracle
- sql 執行過程SQL
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- Oracle:建立JOB定時執行儲存過程Oracle儲存過程
- oracle 如何終止儲存過程的執行Oracle儲存過程
- Oracle 執行 DDL 長時間無響應Oracle
- sql執行過程分析SQL
- Java 程式執行過程Java
- 指令的執行過程
- 【SQL】Oracle避免動態SQL,提高過程執行效率SQLOracle
- oracle 執行儲存過程 ora00131Oracle儲存過程
- oracle 執行過程中 /dev/shm 下是什麼Oracledev
- 執行oracle DDL語句要注意的問題Oracle
- 執行緒池建立執行緒的過程執行緒
- MapReduce 執行全過程解析
- 程式語言執行過程
- Redis 命令的執行過程Redis
- HiveSQL的執行過程分析HiveSQL
- ASP.NET執行過程- -ASP.NET
- jsp的執行過程JS
- oracle 儲存過程執行報錯ORA-12828Oracle儲存過程
- 利用oracle儲存過程執行作業系統命令Oracle儲存過程作業系統
- Oracle中執行儲存過程call和exec區別Oracle儲存過程
- ORACLE sql 語句的執行過程(SQL效能調整)OracleSQL
- MySQL DDL執行方式-Online DDL介紹MySql
- 一條Sql的執行過程SQL
- Javascript中new的執行過程JavaScript
- mysql執行sql語句過程MySql
- webpack loader 的執行過程Web
- Informix 執行緒sleep 分析過程ORM執行緒
- Spring MVC framework 執行過程SpringMVCFramework
- 程式碼精簡執行過程