SQL必知必會 筆記 第二十一章 使用遊標,sql必知

來源:互聯網
上載者:User

SQL必知必會 筆記 第二十一章 使用遊標,sql必知
21.1遊標

SQL檢索操作返回一組稱為結果集的行。這組返回的行都是與SQL語句相匹配的行。
結果集(result set)SQL查詢所檢索出的結果
遊標的一些選項和特性:
(1)能夠標記遊標為唯讀,使資料能讀取,但不能更新和刪除。
(2)能控制可以執行的定向操作。
(3)能標記某些列為可編輯的,某些列為不可編輯的。
(4)規定範圍,使遊標對建立它的特定請求或對所有請求可訪問。
(5)指示DBMS對檢索出的資料做複製,使在遊標開啟和訪問期間資料不變化。

21.2使用遊標

使用遊標的步驟:
(1)在能夠使用遊標前,必須聲明(定義)它。這個過程實際上沒有檢索資料,他只是定義要使用的SELECT語句和遊標選項。
(2)一旦聲明後,必須開啟遊標以供使用。這個過程用前面定義的SELECT語句吧資料實際檢索出來。
(3)對於填有資料的遊標,根據需要取出(檢索)各行。
(4)在結束遊標使用時,必須關閉遊標,而且可能的話,釋放遊標。
在聲明遊標後,可根據需要頻繁地開啟和關閉遊標。在遊標開啟時,可根據需要頻繁地執行取操作。

21.2.1建立遊標

使用DECLARE命名遊標,並定義相應的SELECT語句,根據需要帶WHERE和其他子句。
建立一個檢索沒有電子郵件地址的所有客戶的遊標。Oracle版本。

DECLARE CURSOR CustCursorISSELECT * FROM CustomersWHERE cust_emai IS NULL
21.2.2使用遊標

遊標用OPEN CURSOR開啟遊標。
OPEN CURSOR CustCursor
開啟遊標後用FETCH語句訪問遊標資料。FETCH指出要檢索的行,從何處檢索它們以及將它們放於何處。
使用Oracle文法從遊標中檢索一行:

DECLARE TYPE CustCursor IS REF CURSOR     RETURN Customers%ROWTYPE;DECLARE CustRecord Customers%ROWTYPEBEGIN     OPEN CustCursor;     FETCH CustCursor INTO CustRecord;     CLOSE CustCursor;END;

從第一行到最後一行,對檢索出來的資料進行迴圈:

DECLARE TYPE CustCursor IS REF CURSOR     RETURN Customers%ROWTYPE;DECLARE CustRecord Customers%ROWTYPEBEGIN     OPEN CustCursor;     LOOP     FETCH CustCursor INTO CustRecord;     EXIT WHEN CustCursor%NOTFOUND;     ...     END LOOP;     CLOSE CustCursor;END;
21.2.3關閉遊標
CLOSE CustCursor;

CLOSE語句用來關閉遊標;一旦遊標被關閉,如果不再此開啟,將不能使用。但是,為使用它不需要再次聲明,只需再次OPEN它即可。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.