oracle游標我們經常用到,下面介紹oracle游標和游標變數的區別。
oracle游標是資料庫中乙個命名的工作區,當游標被宣告後,他就與乙個固定的sql想關聯,在編譯時刻是已知的,是靜態的,它永遠指向乙個相同的查詢工作區。
游標變數可以在執行時刻與不同的sql語句關聯,在執行時可以取不同的sql語句。它可以引用不同的工作區。
oracle游標和游標變數是不能相互代替的。
如何定義游標型別:
type ref_type_name is ref cursor [return return_type];
宣告游標變數:
cursor_name ref_type_name;
ref_type_name 是後面宣告游標變數時要用到的我們的游標型別(自定義游標型別,即cursor是系統預設的,ref_type_name是我們定義的 );return_type代表資料庫表中的一行或乙個記錄型別。
type ref_type_name is ref cursor return employee%type
return 是可選的,如果有是強型別,可以減少錯誤;如果沒有return是弱引用,有較好的靈活性。
不能在包頭裡面宣告游標變數,但可以定義游標型別,要注意這二者的區別。可以宣告游標變數作為函式或過程的形式引數。
%type乙個列型別 %rowtype行型別
控制oracle游標變數:open...for...(開啟游標變數,與多行查詢連線起來) fetch(從結果集中取行資料) close(關閉游標變數)
ORACLE 游標和游標變數的區別
如何定義游標型別 type ref type name is ref cursor return return type 宣告游標變數 cursor name ref type name 從技術底層看,兩者是相同的。普通plsql cursor在定義時是 靜態 的。而ref cursors可以動態開...
簡述Oracle游標變數
游標變數和顯示游標的用法基本相同。游標變數的不同之處在於可以在不同程式之間作為引數進行傳遞。宣告游標變數 游標變數型別分為強型別和弱型別兩種,如下所示 type cursortypename is ref cursor return returntype 強型別 type cursortypenam...
游標資料修改和游標變數
修改游標資料 如果建立的游標需要執行更新或者刪除必須帶有for update子句,for update子句會將游標提取出來的資料進行行級鎖定,這樣在本會話更新期間,其他使用者的會話就不能對當前游標中的資料進行更新操作,for update有如下兩種形式 for update of 列,列.為游標中的...