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

成都創(chuàng)新互聯(lián)是專業(yè)的寧化網(wǎng)站建設(shè)公司,寧化接單;提供做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行寧化網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
PL/SQL提供了僅僅使用Oracle游標(biāo)就可以執(zhí)行刪除或更新記錄的方法。
UPDATE或DELETE語(yǔ)句中的WHERE CURRENT OF子串專門處理要執(zhí)行UPDATE或DELETE操作的表中取出的最近的數(shù)據(jù)。
要使用這個(gè)方法,在聲明游標(biāo)時(shí)必須使用FOR UPDATE子串,當(dāng)對(duì)話使用FOR UPDATE子串打開一個(gè)Oracle游標(biāo)時(shí),所有返回集中的數(shù)據(jù)行都將處于行級(jí)(ROW-LEVEL)獨(dú)占式鎖定,其他對(duì)象只能查詢這些數(shù)據(jù)行,不能進(jìn)行UPDATE、DELETE或SELECT...FOR UPDATE操作。
語(yǔ)法:
- FOR UPDATE [OF [schema.]table.column[,[schema.]table.column]..
- [nowait]
在多表查詢中,使用OF子句來(lái)鎖定特定的表,如果忽略了OF子句,那么所有表中選擇的數(shù)據(jù)行都將被鎖定。如果這些數(shù)據(jù)行已經(jīng)被其他會(huì)話鎖定,那么正常情況下ORACLE將等待,直到數(shù)據(jù)行解鎖。
在UPDATE和DELETE中使用WHERE CURRENT OF子串的語(yǔ)法如下:
- WHERE{CURRENT OF cursor_name|search_condition}
例:
- DELCARE
- CURSOR c1 IS SELECT empno,salary
- FROM emp
- WHERE comm IS NULL
- FOR UPDATE OF comm;
- v_comm NUMBER(10,2);
- BEGIN
- FOR r1 IN c1 LOOP
- IF r1.salary<500 THEN
- v_comm:=r1.salary*0.25;
- ELSEIF r1.salary<1000 THEN
- v_comm:=r1.salary*0.20;
- ELSEIF r1.salary<3000 THEN
- v_comm:=r1.salary*0.15;
- ELSE
- v_comm:=r1.salary*0.12;
- END IF;
- UPDATE emp;
- SET comm=v_comm
- WHERE CURRENT OF c1l;
- END LOOP;
- END
以上的相關(guān)內(nèi)容就是對(duì)Oracle游標(biāo)中的更新和刪除的介紹,望你能有所收獲。
文章出自: http://www.programbbs.com/doc/class10-3.htm
【編輯推薦】
- Oracle sql 性能的優(yōu)化調(diào)整的2大步驟
- 對(duì)Oracle SQL相同語(yǔ)句的解析
- Oracle數(shù)據(jù)庫(kù)和DB2取前10條記錄的實(shí)際對(duì)比
- Oracle數(shù)據(jù)庫(kù)與DM的強(qiáng)制訪問(wèn)的不同之處
- Oracle的實(shí)體-Oracle關(guān)系模型
新聞標(biāo)題:Oracle游標(biāo)的刪除與更新實(shí)際操作步驟
網(wǎng)頁(yè)路徑:http://m.5511xx.com/article/coshhdc.html


咨詢
建站咨詢
