自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle數(shù)據(jù)庫對DDL語句和DML語句的事務(wù)管理

數(shù)據(jù)庫 Oracle
本文主要介紹了Oracle數(shù)據(jù)庫對DDL語句和DML語句的事務(wù)管理方面的知識,及DDL語句和DML語句需要在一個事務(wù)中一塊處理的情況失敗時的解決方法,希望能夠?qū)δ兴鶐椭?/div>

Oracle數(shù)據(jù)庫操作中,我們會遇到處理DDL語句DML語句的情況,如果遇到了Oracle DDL語句和DML語句需要在一個事務(wù)中一塊處理的情況,該方法要么成功,要么失敗。對于這個問題,SQL Server等數(shù)據(jù)庫是可以解決的,因為其能對DDL語句做回滾,而Oracle在執(zhí)行DDL語句時會先執(zhí)行commit,所以就不能對DDL語句回滾了。

事務(wù)相關(guān)概念:

1、首先,說說數(shù)據(jù)庫對事務(wù)的相關(guān)定義:

在數(shù)據(jù)庫中事務(wù)是工作的邏輯單元 , 一個事務(wù)是由一個或多個完成一組的相關(guān)行為的 SQL 語句組成 , 通過事務(wù)機(jī)制確保這一組 SQL 語句所作的操作要么完全成功執(zhí)行 , 完成整個工作單元操作 , 要么一點(diǎn)也不執(zhí)行。  事務(wù)具有ACID特性(即:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation,又稱獨(dú)立性)、持久性(Durability)),ACID的概念在ISO/IEC 10026-1:1992文件的第四段內(nèi)有所說明(我找了半天也沒下載到這個標(biāo)準(zhǔn),誰有的送我一份啊,呵呵)。

2、假設(shè)Oracle版本為10g,10g對應(yīng)的jdbc版本為3??匆幌翵DBC3有關(guān)事務(wù)概念:

JDBC3提到了事務(wù)和分布式事務(wù)。對于大家經(jīng)常說的嵌套事務(wù),沒有提及。數(shù)據(jù)庫本質(zhì)上從來沒有過嵌套事務(wù)的概念,只是應(yīng)用程序為了不同的目的將對事務(wù)的操作過程嵌套起來,即使是Oracle的自治事務(wù)也可劃為應(yīng)用程序(存儲過程或是觸發(fā)器什么的), 從應(yīng)用角度講,嵌套事務(wù)處理就是應(yīng)用程序如何將應(yīng)用層面的嵌套轉(zhuǎn)變?yōu)閿?shù)據(jù)庫層面的單事務(wù)操作, 這方面Java領(lǐng)域的EJB,Spring提供了解決方案,另外提一下JTA,它提供了事務(wù)的suspend,resume功能,實(shí)質(zhì)上其實(shí)數(shù)據(jù)庫事務(wù)那里有什么掛起什么的概念,其僅僅是換了一個數(shù)據(jù)庫連接,這樣新的數(shù)據(jù)庫事務(wù)開始了,老的數(shù)據(jù)庫事務(wù)便不再操作,直接其被resume。)。

解決方法:

要想解決一個問題,找到問題的關(guān)鍵所在,就等于成功了一半。如上所述,該問題的關(guān)鍵所在又是什么呢?

Oracle在執(zhí)行DDL語句時會先執(zhí)行commit,所以就不能對DDL語句進(jìn)行回滾。jdbc事務(wù)也不提供相關(guān)方法來進(jìn)行回滾(spring、ejb或許可以,但沒測試過,不好說)。

既然應(yīng)用的一些框架不能提供該功能,就只能自己想辦法解決了,怎么解決?反向操作!或許感覺有些麻煩,但不這么做又如何呢,在操作SQL語句成功后,后邊跟著反向操作的定義(內(nèi)部類派上用場了),在一個大的事務(wù)中,如果出現(xiàn)異常,在異常的地方把反向操作執(zhí)行一把即可。再進(jìn)一步,如果讓所有的DDL語句能和DML語句用不同的數(shù)據(jù)庫連接,那么DML語句就不用反向操作了,節(jié)省了很多工作量,DML語句用事務(wù)的回滾多好?。‘?dāng)然這樣做的前提是,在DDL執(zhí)行時,不能和DML操作的資源引起沖突,即鎖的問題。

關(guān)于Oracle數(shù)據(jù)庫對DDL語句和DML語句的事務(wù)管理的知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. Oracle數(shù)據(jù)庫如何創(chuàng)建DATABASE LINK?
  2. Oracle 10g 數(shù)據(jù)庫閃回的配置與使用詳解
  3. SQL Server數(shù)據(jù)庫日志已滿的解決方法總結(jié)篇
  4. SQL Server分頁存儲過程的五種方法及性能比較
  5. 操作系統(tǒng)不支持SQL Server服務(wù)器組件的解決方案
責(zé)任編輯:趙鵬 來源: CSDN博客
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號