熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

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

2013-11-13 15:50:03  來源: Oracle 

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

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

  UPDATE或DELETE語句中的WHERE CURRENT OF子串專門處理要執行UPDATE或DELETE操作的表中取出的最近的數據

  要使用這個方法在聲明游標時必須使用FOR UPDATE子串當對話使用FOR UPDATE子串打開一個Oracle游標時所有返回集中的數據行都將處於行級(ROWLEVEL)獨占式鎖定其他對象只能查詢這些數據行不能進行UPDATEDELETE或SELECTFOR UPDATE操作

  語法

  FOR UPDATE [OF [schema]lumn[[schema]lumn]

  [nowait]

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

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

  WHERE{CURRENT OF cursor_name|search_condition}

  例

  DELCARE

  CURSOR c IS SELECT empnosalary

  FROM emp

  WHERE comm IS NULL

  FOR UPDATE OF comm;

  v_comm NUMBER();

  BEGIN

  FOR r IN c LOOP

  IF rsalary< THEN

  v_comm:=rsalary*;

  ELSEIF rsalary< THEN

  v_comm:=rsalary*;

  ELSEIF rsalary< THEN

  v_comm:=rsalary*;

  ELSE

  v_comm:=rsalary*;

  END IF;

  UPDATE emp;

  SET comm=v_comm

  WHERE CURRENT OF cl;

  END LOOP;

  END

  以上的相關內容就是對Oracle游標中的更新和刪除的介紹望你能有所收獲


From:http://tw.wingwit.com/Article/program/Oracle/201311/17372.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.