1. 程式人生 > >sybase sql遊標

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;