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(關閉游標變量)
BULK COLLECT子句將游標變量中的行一次性提取到一個集合中.