sybase sql遊標
阿新 • • 發佈:2019-01-08
定義遊標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;