W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在 Oracle 中,SET TRANSACTION 語句可以用來設(shè)置事務(wù)的各種狀態(tài),比如只讀、讀/寫、隔離級別,為事務(wù)分配名稱或?qū)⑹聞?wù)分配回滾段等等。本教程要為大家?guī)淼木褪?SET TRANSACTION 語句的語法以及示例,教大家如何正確使用該語句。
Oracle中SET TRANSACTION語句的語法是:
SET TRANSACTION [ READ ONLY | READ WRITE ]
[ ISOLATION LEVEL [ SERIALIZE | READ COMMITED ]
[ USE ROLLBACK SEGMENT 'segment_name' ]
[ NAME 'transaction_name' ];
參考
● READ ONLY:可以將事務(wù)設(shè)置為只讀事務(wù)。
● READ WRITE:可以將事務(wù)設(shè)置為讀/寫事務(wù)。
● ISOLATION LEVEL: 如果指定,它有兩個選項:
1.ISOLATION LEVEL SERIALIZE:如果事務(wù)嘗試更新由另一個事務(wù)更新并未提交的資源,則事務(wù)將失敗。
2.ISOLATION LEVEL READ COMMITTED:如果事務(wù)需要另一個事務(wù)持有的行鎖,則事務(wù)將等待,直到行鎖被釋放。
● USE ROLLBACK SEGMENT:可選的。 如果指定,它將事務(wù)分配給由 'segment_name' 標(biāo)識的回退段,該段是用引號括起來的段名稱。
● NAME:為 'transaction_name' 標(biāo)識的事務(wù)分配一個名稱,該事務(wù)用引號括起來。
下面我們來看一個演示如何在 Oracle 中使用 SET TRANSACTION 語句的示例。
首先,下面來看看看如何使用SET TRANSACTION語句將事務(wù)設(shè)置為只讀。
SET TRANSACTION READ ONLY NAME 'RO_example';
此示例會將事務(wù)設(shè)置為只讀,并為其分配“RO_example”的名稱。
下面是如何使用 SET TRANSACTION 語句將事務(wù)設(shè)置為讀/寫的示例:
SET TRANSACTION READ WRITE NAME 'RW_example';
一般在做報表查詢的時候,可以先設(shè)置該查詢事務(wù)為一個只讀事務(wù),以避免出現(xiàn)寫操作。
DECLARE
l_name VARCHAR2(100);
l_age NUMBER;
l_sex VARCHAR2(2);
BEGIN
-- 為保證set transaction是事務(wù)的第一條語句,先使用commit或rollback來結(jié)束掉前面可能存在的事務(wù)
COMMIT;
-- 使用name給事務(wù)命名
SET TRANSACTION READ ONLY NAME '查詢報表';
SELECT NAME
INTO l_name
FROM student
WHERE student_id = 1001;
SELECT age
INTO l_age
FROM student
WHERE student_id = 1001;
SELECT sex
INTO l_sex
FROM student
WHERE student_id = 1001;
-- 終止只讀事務(wù)
COMMIT;
dbms_output.put_line('輸出:' || l_name || l_age || l_sex);
END;
以上就是 W3Cschool 為大家?guī)淼?Oracle 中 SET TRANSACTION 語句的詳細(xì)用法介紹,希望對各位學(xué)習(xí) Oracle 的用戶有所幫助。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: