sybase sql遊標

定義遊標6部曲
管理遊標類似於通過編程語言管理文件。遊標的管理步驟如下:
使用 DECLARE 語句爲特殊 SELECT 語句或過程聲明遊標。
使用 OPEN 語句打開遊標。
使用 FETCH 語句從遊標一次檢索一行結果。
警告 [未找到行] 說明已到達結果集的結尾。
使用 CLOSE 語句關閉遊標。
缺省情況下,遊標會在事務結尾處(COMMIT 或 ROLLBACK 語句上)自動關閉。而使用 WITH HOLD 子句所打開的遊標對隨後的事務也會保持打開狀態,直至被顯式關閉。

BEGIN
   -- 1. Declare the "row not found" exception
   DECLARE err_notfound
      EXCEPTION FOR SQLSTATE '02000';
   -- 2.  Declare variables to hold
   --    each company name and its value
   DECLARE ThisName CHAR(100);
   DECLARE temps CHAR(500);

   -- 3.  Declare the cursor ThisCompany
   --     for the query
   DECLARE ThisCompany CURSOR FOR
   SELECT TB_NAA_EVENTOFFERED.ANTECEDENCE from TB_NAA_EVENTOFFERED;

   -- 5. Open the cursor
   OPEN ThisCompany;
   -- 6. Loop over the rows of the query
   CompanyLoop:
   LOOP
      FETCH NEXT ThisCompany
         INTO ThisName;
      IF SQLSTATE = err_notfound THEN
         LEAVE CompanyLoop;
      END IF;
    set  temps = temps||ThisName;
   END LOOP CompanyLoop; 
   -- 7. Close the cursor
   CLOSE ThisCompany;
   select temps as s; 
END;
發佈了89 篇原創文章 · 獲贊 44 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章