遊標用來處理從數據庫中檢索的多行記錄(使用SELECT語句)。利用遊標,程序可以逐個地處理和遍歷一次檢索返回的整個記錄集。
爲了處理SQL語句,Oracle將在內存中分配一個區域,這就是上下文區。這個區包含了已經處理完的行數、指向被分析語句的指針,整個區是查詢語句返回的數據行集。遊標就是指向上下文區句柄或指針。
兩種遊標:
一、顯示遊標(需要明確定義!)
顯示遊標被用於處理返回多行數據的SELECT 語句,遊標名通過CURSOR….IS 語句顯示地賦給SELECT 語句。
在PL/SQL中處理顯示遊標所必需的四個步驟:
1)聲明遊標;CURSOR cursor_name IS select_statement
2)爲查詢打開遊標;OPEN cursor_name
3)取得結果放入PL/SQL變量中;
FETCH cursor_name INTO list_of_variables;
FETCH cursor_name INTO PL/SQL_record;
4)關閉遊標。CLOSE cursor_name
注意:在聲明遊標時,select_statement不能包含INTO子句。當使用顯示遊標時,INTO子句是FETCH語句的一部分。
二、隱式遊標
所有的隱式遊標都被假設爲只返回一條記錄。
使用隱式遊標時,用戶無需進行聲明、打開及關閉。PL/SQL隱含地打開、處理,然後關掉遊標。
一、顯示遊標(需要明確定義!)
所有的隱式遊標都被假設爲只返回一條記錄。
使用隱式遊標時,用戶無需進行聲明、打開及關閉。PL/SQL隱含地打開、處理,然後關掉遊標。