oracle事務(wù)如何使用 oracle事務(wù)處理

求問在.NET中如何使用Oracle數(shù)據(jù)庫事務(wù) (5)

您可以使用 OracleTransaction 類的 Save() 方法在事務(wù)中設(shè)置保存點。 如果您有一個非常長的事務(wù)并且希望能夠僅回滾到某個特定的時間點,那么您可能要使用保存點。例如,您可能想對 10 個產(chǎn)品做一些更改,然后設(shè)置一個保存點,然后再對另 10 個產(chǎn)品做更改;如果您在進行第二批更改時出現(xiàn)了錯誤,那么您可以回滾至保存點,使您的第一批更改原封不動。 我將帶您逐步完成演示如何使用保存點的 C# (TransExample2.cs) 示例程序和 VB.NET (TransExample2.vb) 示例程序中的相關(guān)新步驟。這些程序向表 products 中添加一行,設(shè)置一個保存點,向表 products 中添加另一行,回滾至保存點,然后從表 products 中讀取這些行。在回滾至保存點后,只有添加到表 products 中的第一行保留了下來:第二行將已被刪除。 第1 到第 3 步與“在 C# 和 VB.NET 中使用數(shù)據(jù)庫事務(wù)”部分中所示的步驟相同,因此在這里將其省略。 第4 步 向表products 中添加一行,該行的產(chǎn)品 ID 為 6。 在C# 中: myOracleCommand.CommandText = "INSERT INTO products (" + " product_id, product_type_id, name, description, price" + ") VALUES (" + " 6, 2, 'Man from Another World', ' Man from Venus lands on Earth', 24.99" + ")"; myOracleCommand.ExecuteNonQuery();在VB.NET 中: myOracleCommand.CommandText = _ "INSERT INTO products (" _ " product_id, product_type_id, name, description, price" _ ") VALUES (" _ " 6, 2, 'Man from Another World', 'Man from Venus lands on Earth', 24.99" _ ")" myOracleCommand.ExecuteNonQuery()第5 步 使用OracleTransaction 的 Save() 方法設(shè)置一個名為 SaveProduct 的保存點。 在C# 中: myOracleTransaction.Save("SaveProduct");在VB.NET 中: myOracleTransaction.Save("SaveProduct")第6 步 向表products 中添加另一行,該行的產(chǎn)品 ID 為 7。 在C# 中: myOracleCommand.CommandText = "INSERT INTO products (" + " product_id, product_type_id, name, description, price" + ") VALUES (" + " 7, 2, 'Z-Files', 'Mysterious stories', 14.99" + ")"; myOracleCommand.ExecuteNonQuery();在VB.NET 中: myOracleCommand.CommandText = _ "INSERT INTO products (" _ " product_id, product_type_id, name, description, price" _ ") VALUES (" _ " 7, 2, 'Z-Files', 'Mysterious stories', 14.99" _ ")" myOracleCommand.ExecuteNonQuery()第7 步 回滾到先前在第 5 步中設(shè)置的 SaveProduct 保存點。 在C# 中: myOracleTransaction.Rollback("SaveProduct");在VB.NET 中: myOracleTransaction.Rollback("SaveProduct")完成回滾后,在第 6 步中添加的第二行已被刪除,而在第 4 步中添加的第一行保留了下來。 TransExample2.cs 和 TransExample2.vb 中剩下的步驟顯示表 products 的內(nèi)容,回滾整個事務(wù)并從數(shù)據(jù)庫斷開。 用于Microsoft Transaction Server 的 Oracle 事務(wù)服務(wù)的快速說明。Microsoft Transaction Server 是一個運行在互聯(lián)網(wǎng)或網(wǎng)絡(luò)服務(wù)器上的專有事務(wù)處理系統(tǒng)。Microsoft Transaction Server 為客戶端計算機部署和管理應(yīng)用程序和數(shù)據(jù)庫事務(wù)請求。 Microsoft Transaction Server 是以服務(wù)器為中心的三層體系結(jié)構(gòu)模型的一個組件。這種方法實現(xiàn)了將應(yīng)用程序的表示、業(yè)務(wù)邏輯和數(shù)據(jù)元素清晰地分布到在一個網(wǎng)絡(luò)中連接的不同計算機上。無需專門集成,您就可以在與 Oracle 數(shù)據(jù)庫服務(wù)器 8.0.6 版或更高版本連接的 Microsoft Transaction Server 中部署一個組件,但首先您必須安裝 Oracle Services for Microsoft Transaction Server。 結(jié)論在本文中,您系統(tǒng)學(xué)習(xí)了在 .NET 程序中使用數(shù)據(jù)庫事務(wù)。 (T004)

創(chuàng)新互聯(lián)公司是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計公司的優(yōu)秀設(shè)計人員和策劃人員組成的一個具有豐富經(jīng)驗的團隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計師、平面廣告設(shè)計師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)站改版、網(wǎng)頁設(shè)計制作、網(wǎng)站建設(shè)與維護、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務(wù)。

Oracle怎么顯式開啟事務(wù),開始事務(wù)跟鎖有什么關(guān)系,在存儲過程中有時怎么開啟和提交,回滾事務(wù)的

oracle使用語句savepoint sp_begintran開啟顯式事務(wù),鎖本身和事務(wù)是沒有關(guān)系的,只要是數(shù)據(jù)庫的操作都會產(chǎn)生鎖。處于事務(wù)中的SQL語句只有這個事務(wù)提交(commit)之后,事務(wù)中的SQL語句影響的表記錄上的鎖才會釋放。鎖常見有共享鎖(select語句產(chǎn)生)和排它鎖(DML語句產(chǎn)生),如果一個表上加載有共享鎖,還可以疊加共享鎖,但不能疊加排它鎖。如果一個表上加載有排他鎖,就什么鎖都不能加了,也就是說如果DML語句占用過多的時間,這些數(shù)據(jù)庫效率就不高,就需要優(yōu)化,當(dāng)然select語句性能低了也不行。

每個存儲過程可以不用顯式事務(wù),它本身就為你開啟了一個隱式事務(wù),如果需要開啟顯示事務(wù),就通過savepoint sp_begintran開啟,無論是不是顯式還是隱式事務(wù),你都得通過commit work提交事務(wù),通過exception捕捉SQL語句異常,在異常發(fā)生時需要回滾事務(wù)(rollback work)。

oracle存儲過程中使用事務(wù)管理

存儲過程里的事務(wù)操作

create or replace procedure pr_mypro (p_a in varchar p_b in varchar p_count out number)

temp varchar ( );?? /**//*定義臨時變量*/

is

begin

select code into p_count from table where a=p_a; /**//*查詢并返回值*/

temp := p_count;? /**//*將返回值賦給臨時變量*/

savepoint point ;? /**//*保存點*/

insert into table (a b)values(temp p_b); /**//*將臨時變量值添加到新表的字段*/

savepoint point ;

insert into

exception

when??? others?? then

rollback to savepoint point ;? /**//*異常處理 保存點下面的操作都不會被執(zhí)行*/

return;

end;

保存點(SAVEPOINT)是事務(wù)處理過程中的一個標(biāo)志 與回滾命令(ROLLBACK)結(jié)合使用 主要的用途是允許用戶將某一段處理回滾而不必回滾整個事務(wù)

如果定義了多個savepoint 當(dāng)指定回滾到某個savepoint時 那么回滾操作將回滾這個savepoint后面的所有操作(即使后面可能標(biāo)記了N個savepoint)

lishixinzhi/Article/program/Oracle/201311/16520

如何在oracle中開啟一個事務(wù)有這樣的命令么?當(dāng)你進入一個會話時你怎么知道當(dāng)前所處的是否在一個事務(wù)中?

BeginTrans用于開始一個事物;RollbackTrans用于回滾事務(wù);CommitTrans用于提交所有的事務(wù)處理結(jié)果,即確認(rèn)事務(wù)的處理

BeginTrans和CommitTrans 用于標(biāo)記事務(wù)的開始和結(jié)束,在這兩個之間的語句,就是作為事務(wù)處理的語句

Oracle中事務(wù)怎么使用 ,什么時候使用事物

事務(wù)是為了實現(xiàn)數(shù)據(jù)的一致性和并發(fā)處理,你對數(shù)據(jù)進行定義和修改時就會產(chǎn)生事務(wù)。

例如你執(zhí)行update語句,這時事務(wù)就開始了,執(zhí)行commit會提交事務(wù),而rollback會回滾(撤銷)事務(wù)。如果你什么也不做,那么正常退出程序時會自動提交,而程序異常中止則會回滾事務(wù)。

本文名稱:oracle事務(wù)如何使用 oracle事務(wù)處理
本文URL:http://muchs.cn/article28/hjcojp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、關(guān)鍵詞優(yōu)化、用戶體驗、網(wǎng)站設(shè)計、服務(wù)器托管、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)