Oracle游標和游標變數的區別

2022-08-28 20:00:13 字數 759 閱讀 9138

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 列,列.為游標中的...