日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Oracle數(shù)據(jù)庫(kù)對(duì)DDL語(yǔ)句和DML語(yǔ)句的事務(wù)管理

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

成都創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)、網(wǎng)站重做改版、肅州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為肅州等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

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

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

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

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

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

解決方法:

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

Oracle在執(zhí)行DDL語(yǔ)句時(shí)會(huì)先執(zhí)行commit,所以就不能對(duì)DDL語(yǔ)句進(jìn)行回滾。jdbc事務(wù)也不提供相關(guān)方法來(lái)進(jìn)行回滾(spring、ejb或許可以,但沒(méi)測(cè)試過(guò),不好說(shuō))。

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

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

【編輯推薦】

  1. Oracle數(shù)據(jù)庫(kù)如何創(chuàng)建DATABASE LINK?
  2. Oracle 10g 數(shù)據(jù)庫(kù)閃回的配置與使用詳解
  3. SQL Server數(shù)據(jù)庫(kù)日志已滿的解決方法總結(jié)篇
  4. SQL Server分頁(yè)存儲(chǔ)過(guò)程的五種方法及性能比較
  5. 操作系統(tǒng)不支持SQL Server服務(wù)器組件的解決方案

分享題目:Oracle數(shù)據(jù)庫(kù)對(duì)DDL語(yǔ)句和DML語(yǔ)句的事務(wù)管理
分享網(wǎng)址:http://m.5511xx.com/article/codhijs.html