存儲過程游標(biāo)的詳解 存儲過程中游標(biāo)是怎么用的?
存儲過程中游標(biāo)是怎么用的?ALTERproc[dbo].[存儲過程名]asbegindeclare游標(biāo)名字cursorforselect列名from表名where條件--先申明游標(biāo)指向查詢出的結(jié)果,一
存儲過程中游標(biāo)是怎么用的?
ALTERproc[dbo].[存儲過程名]asbegindeclare游標(biāo)名字cursorforselect列名from表名where條件--先申明游標(biāo)指向查詢出的結(jié)果,一列,或者多列都可以,條件自定declare變量名varchar(400)--存儲取到的值open游標(biāo)名--開啟游標(biāo)while@@FETCH_STATUS=0--取值beginfetchnextFROM游標(biāo)名into變量名--這樣就將游標(biāo)指向下一行,得到的第一行值就傳給變量了---------------------------------------------需要執(zhí)行的操作,例如修改某表中的字段update表名set列名=值where(修改表中的列)=變量名-------------------------------------------endclose游標(biāo)名--關(guān)閉游標(biāo)deallocate游標(biāo)名--釋放游標(biāo)end
存儲過程為什么要用游標(biāo),什么情況下使用游標(biāo)?
存儲過程中查詢語句如何返回多行結(jié)果?我們知道,如果存儲過程中查詢語句有多行結(jié)果輸出,會報(bào)錯。若想讓存儲過程中的查詢語句返回多行結(jié)果不報(bào)錯,則需要使用游標(biāo)來實(shí)現(xiàn)。本例主要也是用來熟悉存儲過程中游標(biāo)的簡單使用方法:SET SERVEROUTPUT ONv_empno emp.empno%TYPE--定義游標(biāo) 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 /