Oracle游標和游標變量的區別


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(關閉游標變量)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM