使用savepoint sp_begintran就可以了

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),崇陽網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:崇陽等地區(qū)。崇陽做網(wǎng)站價(jià)格咨詢:18980820575
如:
系列SQL或者DML語句;
savepoint sp_begintran; ---------設(shè)置回滾點(diǎn)
系列DML語句;
commit work;
這兒commit work;總是提交與其最近的回滾點(diǎn)
execute執(zhí)行后
可以回滾
commit提交后
不可以回滾
其實(shí)oracle提交數(shù)據(jù)是分兩步操作的,第一步execute執(zhí)行,第二步commit提交。對應(yīng)的pl\sql也是要先點(diǎn)execute執(zhí)行,執(zhí)行后再點(diǎn)commit提交。
但是
commit提交后
可以用閃回查詢恢復(fù)原來的數(shù)據(jù)
因?yàn)閛racle會將近期的數(shù)據(jù)保存到快照中
如:
select
*
from
table_1
as
of
timestamp
to_timestamp('20080606
20:00:00','yyyymmdd
hh24:mi:ss');
這里'20080606
20:00:00'就是你想恢復(fù)數(shù)據(jù)到哪個(gè)時(shí)間狀態(tài)
table_1是數(shù)據(jù)庫的表名
這樣查詢到的數(shù)據(jù)就是執(zhí)行更新操作之前的數(shù)據(jù)
execute執(zhí)行后
可以回滾
commit提交后
不可以回滾
其實(shí)Oracle提交數(shù)據(jù)是分兩步操作的,第一步execute執(zhí)行,第二步commit提交。對應(yīng)的PL\SQL也是要先點(diǎn)execute執(zhí)行,執(zhí)行后再點(diǎn)commit提交。
但是
commit提交后
可以用閃回查詢恢復(fù)原來的數(shù)據(jù)
因?yàn)閛racle會將近期的數(shù)據(jù)保存到快照中
如:
SELECT
*
FROM
TABLE_1
AS
OF
TIMESTAMP
TO_TIMESTAMP('20080606
20:00:00','YYYYMMDD
HH24:MI:SS');
這里'20080606
20:00:00'就是你想恢復(fù)數(shù)據(jù)到哪個(gè)時(shí)間狀態(tài)
TABLE_1是數(shù)據(jù)庫的表名
這樣查詢到的數(shù)據(jù)就是執(zhí)行更新操作之前的數(shù)據(jù)
SQL和PL/SQL中Savepoint一事務(wù)范圍內(nèi)中間標(biāo)志經(jīng)常用于將一個(gè)長事務(wù)劃分為小部分保留點(diǎn)Savepoint可標(biāo)志長事務(wù)中任何點(diǎn)允許可回滾該點(diǎn)之后操作解決源代碼中經(jīng)常解決Savepoint;例如一過程包含幾個(gè)函數(shù)每個(gè)函數(shù)前可建立一個(gè)保留點(diǎn)如果函數(shù)失敗很容易返回到每一個(gè)函數(shù)開始情況回滾到一個(gè)Savepoint之后該Savepoint之后所獲得數(shù)據(jù)封鎖被釋放為了處理方案部分回滾可以用帶TO Savepoint子句ROLLBACK語句將事務(wù)回滾到指定位置
例
BEGIN
INSERT INTO ATM_LOG(whowhenwhatwhere)
VALUES ('Kiesha'SYSDATE'Withdrawal of $100''ATM54')
SAVEPOINT ATM_LOGGED;
UPDATE checking
SET balance=balance-100
RETURN balance INTO new_balance;
IF new_balance0
THEN
ROLLBACK TO ATM_LOGGED;
COMMIT
RAISE insufficient_funda;
END IF
END
關(guān)鍵字SAVEPOINT可選所以下面兩個(gè)語句等價(jià):
ROLLBACK TO ATM_LOGGED;
ROLLBACK TO SAVEPOINT ATM_LOGGED;
當(dāng)前文章:oracle回滾怎么設(shè)置,oracle數(shù)據(jù)庫回滾命令
文章鏈接:http://chinadenli.net/article46/hedohg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、服務(wù)器托管、網(wǎng)站制作、搜索引擎優(yōu)化、軟件開發(fā)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)