IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置:首頁數(shù)據(jù)庫Oracle → Oracle游標的刪除與更新實際操作步驟

Oracle游標的刪除與更新實際操作步驟

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

  以下的文章主要是介紹oracle游標的刪除與更新,我們都知道在PL/SQL中是可以使用UPDATE與DELETE語句來更新或者刪除相關(guān)的數(shù)據(jù)行。顯式Oracle游標只有在需要獲得多行數(shù)據(jù)的情況下使用。

  PL/SQL提供了僅僅使用Oracle游標就可以執(zhí)行刪除或更新記錄的方法。

  UPDATE或DELETE語句中的WHERE CURRENT OF子串專門處理要執(zhí)行UPDATE或DELETE操作的表中取出的最近的數(shù)據(jù)。

  要使用這個方法,在聲明游標時必須使用FOR UPDATE子串,當對話使用FOR UPDATE子串打開一個Oracle游標時,所有返回集中的數(shù)據(jù)行都將處于行級(ROW-LEVEL)獨占式鎖定,其他對象只能查詢這些數(shù)據(jù)行,不能進行UPDATE、DELETE或SELECT...FOR UPDATE操作。

  語法:

  1.FOR UPDATE [OF [schema.]table.column[,[schema.]table.column]..

  2.[nowait]

  在多表查詢中,使用OF子句來鎖定特定的表,如果忽略了OF子句,那么所有表中選擇的數(shù)據(jù)行都將被鎖定。如果這些數(shù)據(jù)行已經(jīng)被其他會話鎖定,那么正常情況下ORACLE將等待,直到數(shù)據(jù)行解鎖。

  在UPDATE和DELETE中使用WHERE CURRENT OF子串的語法如下:

  1.WHERE{CURRENT OF cursor_name|search_condition}

  例:

  1.DELCARE

  2.CURSOR c1 IS SELECT empno,salary

  3.FROM emp

  4.WHERE comm IS NULL

  5.FOR UPDATE OF comm;

  6.v_comm NUMBER(10,2);

  7.BEGIN

  8.FOR r1 IN c1 LOOP

  9.IF r1.salary<500 THEN

  10.v_comm:=r1.salary*0.25;

  11.ELSEIF r1.salary<1000 THEN

  12.v_comm:=r1.salary*0.20;

  13.ELSEIF r1.salary<3000 THEN

  14.v_comm:=r1.salary*0.15;

  15.ELSE

  16.v_comm:=r1.salary*0.12;

  17.END IF;

  18.UPDATE emp;

  19.SET comm=v_comm

  20.WHERE CURRENT OF c1l;

  21.END LOOP;

  22.END

  以上的相關(guān)內(nèi)容就是對Oracle游標中的更新和刪除的介紹,望你能有所收獲。

關(guān)鍵詞標簽:Oracle游標

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列Oracle中使用alter table來增加,刪除,修改列oracle中使用SQL語句修改字段類型-oracle修oracle中使用SQL語句修改字段類型-oracle修使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限使用低權(quán)限Oracle數(shù)據(jù)庫賬戶得到管理員權(quán)限Oracle對user的訪問控制Oracle對user的訪問控制

相關(guān)下載

人氣排行 ORACLE SQL 判斷字符串是否為數(shù)字的語句Oracle中使用alter table來增加,刪除,修改列的語法ORACLE和SQL語法區(qū)別歸納(1)oracle grant 授權(quán)語句如何加速Oracle大批量數(shù)據(jù)處理Oracle刪除表的幾種方法ORACLE修改IP地址后如何能夠使用Oracle 10g創(chuàng)建表空間和用戶并指定權(quán)限