无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應(yīng)
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補(bǔ)償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

    談?wù)剬racle處理DDL和DML語句的事務(wù)管理

    發(fā)布時間:  2012/8/26 15:43:26

    一、先說問題

    在開發(fā)過程中,遇到了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í)行 , 完成整個工作單元操作 , 要么一點也不執(zhí)行。  事務(wù)具有ACID特性(即:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation,又稱獨立性)、持久性(Durability)),ACID的概念在ISO/IEC 10026-1:1992文件的第四段內(nèi)有所說明(我找了半天也沒下載到這個標(biāo)準(zhǔn),誰有的送我一份啊,呵呵)。

    2、我機(jī)器的Oracle版本為10g,10g對應(yīng)的jdbc版本為3。看一下JDBC3有關(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功能,實質(zhì)上其實數(shù)據(jù)庫事務(wù)那里有什么掛起什么的概念,其僅僅是換了一個數(shù)據(jù)庫連接,這樣新的數(shù)據(jù)庫事務(wù)開始了,老的數(shù)據(jù)庫事務(wù)便不再操作,直接其被resume。)。

    那么接下來我們看看JDBC3中對事務(wù)的定義:

    Transactions are used to provide data integrity, correct application semantics, and a consistent view of data during concurrent access. All JDBC compliant drivers are required to provide transaction support. Transaction management in the JDBC API mirrors the SQL99 specification and includes these concepts:
     Auto-commit mode
     Transaction isolation levels
     Savepoints

    三、解決方法

    要想解決一個問題,找到問題的關(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操作的資源引起沖突,即鎖的問題。


    本文出自:億恩科技【mszdt.com】

    服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線