CURSOR CUR1(yyyyMM CHAR(6))
------------------------------------
SELECT 
        CD_SHIHARAI
FROM 
        T_N012 
WHERE 
        TD_DELETE IS NULL 
        AND YM_SHIHARAI = yyyyMM 
------------------------------------
如上边所写的,声明一个CURSOR,name:CUR1,需要传入一个参数,作为查询条件(SELECT文最后一行),譬如参数name:yyyyMM,type:CHAR(6),请教这样的游标怎么写?谢谢!

解决方案 »

  1.   

    declare @yyyyMM varchar(6)
    set @yyyyMM = '??????'declare CUR1 cursor for SELECT CD_SHIHARAI FROM T_N012 WHERE TD_DELETE IS NULL AND YM_SHIHARAI = @yyyyMM
    ...
      

  2.   

    谢谢!我根据你写的做了如下修改,可能更适合我这里使用,还请你确认一下。
    declare @yyyyMM varchar(6)
    declare CUR1 cursor for SELECT CD_SHIHARAI FROM T_N012 WHERE TD_DELETE IS NULL AND YM_SHIHARAI = @yyyyMM
    以上的部分是存在与存储过程的declare部分,相当声明了cursor的构造体,完全可以把它作为一个共同方法,而真正在整个存储过程的BEGIN--END之间使用的时候,重新的set @yyyyMM = '??????',OPEN CUR1的时候就相当于依据最新的@yyyyMM ,重新生成一个cursor的实例CUR1。
    我可以这样理解吗?