程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle游標和游標變量的區別

oracle游標和游標變量的區別

編輯:Oracle數據庫基礎

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved