国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
SavePoint

保存點(diǎn)(SAVEPOINT)是事務(wù)處理過程中的一個(gè)標(biāo)志,與回滾命令(ROLLBACK)結(jié)合使用,主要的用途是允許用戶將某一段處理回滾而不必回滾整個(gè)事務(wù),這在PL/SQL開發(fā)中還是很有用處的。
下面的例子中,把SAVEPOINT標(biāo)記在INSERT語句之前,如果這條INSERT語句試圖將重復(fù)的數(shù)據(jù)保存到EMP表中的話,將觸發(fā)執(zhí)行預(yù)先定義的DUP_VAL_ON_INDEX例外處理,在這里面的ROLLBACK TO do_insert命令將回滾上面的那條INSERT操作,而不會影響前面的任何操作。

DECLARE
   emp_id  emp.empno%TYPE;
BEGIN
   UPDATE emp SET ... WHERE empno = emp_id;
   DELETE FROM emp WHERE ...
   ...
   SAVEPOINT do_insert;
   INSERT INTO emp VALUES (emp_id, ...);
EXCEPTION
   WHEN DUP_VAL_ON_INDEX THEN
      ROLLBACK TO do_insert;
END;

如果你定義了多個(gè)savepoint,當(dāng)你指定回滾到某個(gè)savepoint時(shí),那么回滾操作將回滾這個(gè)savepoint后面的所有操作(即使后面可能標(biāo)記了N個(gè)savepoint)。例如,在一段處理中
你定義了五個(gè)savepoint,從第三個(gè)savepoint回滾,后面的第四、第五個(gè)標(biāo)記的操作都將被回滾,如果不使用ROLLBACK TO savepoint_name而使用ROLLBACK,將會滾整個(gè)事務(wù)處理。

如果你在遞歸子程序里面定義了一個(gè)savepoint, 如果每一個(gè)遞歸層都設(shè)置了SAVEPOINT. 此時(shí), 你只能回滾到最近的一個(gè)savepoint.

Savepoint的聲明可以在同一個(gè)事務(wù)處理里面重復(fù)定義. 它的作用就是把savepoint從上一個(gè)位置轉(zhuǎn)移到目前的位置. 因而,執(zhí)行回滾也只回滾到最近的savepoint.
下面是一個(gè)例子:

BEGIN
   ...
   SAVEPOINT my_point;
   UPDATE emp SET ... WHERE empno = emp_id;
   ...
   SAVEPOINT my_point;  -- move my_point to current point
   INSERT INTO emp VALUES (emp_id, ...);
EXCEPTION
   WHEN OTHERS THEN
      ROLLBACK TO my_point;
END;

另外,Oracle沒有對每個(gè)session里面可以使用的savepoint個(gè)數(shù)做限制.

 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Oracle PL/SQL開發(fā)基礎(chǔ)(第二十七彈:事務(wù)處理簡介)
關(guān)于Oracle事務(wù)的總結(jié)
終于有人將MySQL講明白了
Oracle筆記(七) 數(shù)據(jù)更新、事務(wù)處理、數(shù)據(jù)偽列
事務(wù)控制
oracle存儲過程中的事務(wù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服