當(dāng)然不是了,在Oracle中,只有DML才會開啟一個事務(wù)。也就是說Insert,Update,Delete這些都會開啟一個事務(wù),并且該事務(wù)在commit/rollback/ddl命令時會自動結(jié)束。

為黎城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及黎城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、做網(wǎng)站、黎城網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
其他的,像查詢語句Select(不包含F(xiàn)or Update等語句)時,是不會開啟一個事務(wù)的。
補充:
首先有一點非常抱歉,上次的回答中誤將DML寫成了DDL,可能這一點兒讓你誤解了。
“當(dāng)insert語句后會打開事務(wù),然后再來一個insert語句又會是一個新事物是嗎”這種說法是不正確的,第一個Insert沒有commit或者rollback的情況下,第二個Insert和第一個是屬于同一個事務(wù)的。因為Insert不屬于commit/rollback/ddl命令,而是屬于DML命令。
當(dāng)?shù)谝粋€Insert結(jié)束后,立即執(zhí)行一個新建表,刪除表等命令(DDL命令),則會結(jié)束當(dāng)前事務(wù)。
1、正常關(guān)閉
正常關(guān)閉數(shù)據(jù)庫所用的選項是normal,數(shù)據(jù)庫在關(guān)閉前將檢查所有的連接,并且發(fā)出命令后不允許再有新的用戶連接,在等待所有連接都斷開后再關(guān)閉數(shù)據(jù)庫,再次啟動數(shù)據(jù)庫不需要任何恢復(fù)過程。
聯(lián)入sys用戶
sqlshutdown normal;
2、緊急關(guān)閉
該方式用在某些緊急的情況下,比如通知馬上停電,此時需要緊急關(guān)閉數(shù)據(jù)庫以應(yīng)付這些情況。這種方式用的選項是immediate,在這種方式下并不等待所有的用戶斷開連接再關(guān)閉,而是由系統(tǒng)斷開連接,然后關(guān)閉數(shù)據(jù)庫。
sqlshutdown immediate;
一旦執(zhí)行了這條命令,則將當(dāng)前正在處理的sql語句馬上停止,然后將所有未提交的事務(wù)回退,并且不等待當(dāng)前聯(lián)入數(shù)據(jù)庫的用戶斷開連接,而是由系統(tǒng)強行將各個聯(lián)接斷開。在下次啟動數(shù)據(jù)庫時要執(zhí)行恢復(fù)動作,不過是由系統(tǒng)自動執(zhí)行的,用戶不必去了解它。
3、異常關(guān)閉
異常關(guān)閉選項是abort,此種方式下系統(tǒng)并不做任何檢查和斷開用戶操作以及回退操作,而是直接將數(shù)據(jù)庫現(xiàn)場撤銷,這樣現(xiàn)場中的數(shù)據(jù)庫數(shù)據(jù)當(dāng)然就無效了,數(shù)據(jù)庫自然也就被關(guān)掉了。
sqlshutdown abort;
以abort方式關(guān)閉數(shù)據(jù)庫時只有一行關(guān)閉信息表示關(guān)閉了數(shù)據(jù)庫現(xiàn)場。以abort方式關(guān)閉的數(shù)據(jù)庫再次啟動時必須要進(jìn)行恢復(fù)動作,這些恢復(fù)操作同樣是系統(tǒng)自動來完成的,需要的時間較長。
Oracle事務(wù)始于DML語句 情況發(fā)事務(wù)結(jié)束: 一、COMMIT/ROLLBACK 二、執(zhí)行DDL/DCL語句 三、客戶端主斷數(shù)據(jù)庫連接(DISCONNECT) 四、數(shù)據(jù)庫關(guān)閉(宕機) 另外DDL/DCL語句實際事務(wù)其隱含COMMIT Oracle需要特別指定事務(wù)始結(jié)束事務(wù)結(jié)束事務(wù)
用以下的sql可以查詢出當(dāng)前session中正在運行的sql信息:
select
s.module,
sql_text,
sn.osuser,
sn.machine,
s.executions
from
sys.v_$sql
s,
sys.all_users
u,
v$session
sn
where
s.parsing_user_id
=
u.user_id
and
upper(u.username)
in
('username')
and
(upper(s.module)
=
'app.exe')
and
sn.sql_hash_value
=
s.hash_value
and
sn.sql_address
=
s.address
order
by
s.last_load_time
1. 在V$ACCESS視圖中找到要停止進(jìn)程的SID:
SELECT SID FROM V$ACCESS WHERE NAME='存儲過程名稱';
2. 在V$SESSION視圖中查找到查出SID和SERIAL#
SELECT SID,SERIAL#,FROM V$SESSION WHERE SID='剛才查到的SID'。
3.殺掉查找出來的進(jìn)程
alter system kill session 'SID,SERIAL#' immediate;
解釋:進(jìn)程都有唯一的進(jìn)程id(SID)和序列號(SERIAL#),之后通過kill命令即可強制停止進(jìn)程。
SHUTDOWN IMMEDIATE:不允許新的連接、不等待會話結(jié)束、不等待事務(wù)結(jié)束、做一個檢查點并關(guān)閉數(shù)據(jù)文件。沒有結(jié)束的事務(wù)是自動rollback的。啟動時不需要實例恢復(fù)。
當(dāng)前標(biāo)題:oracle如何結(jié)束事物,oracle強制結(jié)束事務(wù)
文章地址:http://chinadenli.net/article4/hsjeie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站設(shè)計公司、網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、搜索引擎優(yōu)化
聲明:本網(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)