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