存儲過程游標的詳解 存儲過程中游標是怎么用的?
存儲過程中游標是怎么用的?ALTERproc[dbo].[存儲過程名]asbegindeclare游標名字cursorforselect列名from表名where條件--先申明游標指向查詢出的結果,一
存儲過程中游標是怎么用的?
ALTERproc[dbo].[存儲過程名]asbegindeclare游標名字cursorforselect列名from表名where條件--先申明游標指向查詢出的結果,一列,或者多列都可以,條件自定declare變量名varchar(400)--存儲取到的值open游標名--開啟游標while@@FETCH_STATUS=0--取值beginfetchnextFROM游標名into變量名--這樣就將游標指向下一行,得到的第一行值就傳給變量了---------------------------------------------需要執(zhí)行的操作,例如修改某表中的字段update表名set列名=值where(修改表中的列)=變量名-------------------------------------------endclose游標名--關閉游標deallocate游標名--釋放游標end
存儲過程為什么要用游標,什么情況下使用游標?
存儲過程中查詢語句如何返回多行結果?我們知道,如果存儲過程中查詢語句有多行結果輸出,會報錯。若想讓存儲過程中的查詢語句返回多行結果不報錯,則需要使用游標來實現(xiàn)。本例主要也是用來熟悉存儲過程中游標的簡單使用方法:SET SERVEROUTPUT ONv_empno emp.empno%TYPE--定義游標 CURSOR emp_cursor IS SELECT empno, ename, sal from empBEGIN--循環(huán)開始FETCH emp_cursor INTO v_empno, v_ename, v_sal--退出循環(huán)的條件 EXIT WHEN emp_cursor%NOTFOUND OR emp_cursor%NOTFOUND IS NULLdbms_output.put_line("員工編號為" || v_empno || "的" || v_ename || "薪水為:" || v_sal) END LOOPEND /