当前位置: 代码迷 >> DB2 >> 简单的DB2游标
  详细解决方案

简单的DB2游标

热度:3248   发布时间:2013-02-26 00:00:00.0
求一个简单的DB2游标
请问DB2的游标怎么应用?请举个简单的例子。
MSSQL的游标我知道。
DECLARE FRXG_cursor CURSOR FOR 
Select GoodsNum ,Model ,InStoreNo ,Additional ,GoodsType From Needle_goodstype
OPEN FRXG_cursor

FETCH NEXT FROM FRXG_cursor 
INTO @GoodsNum,@Model,@BarCodeID,@Additional,@GoodsType
WHILE @@FETCH_STATUS = 0
  BEGIN
  --内容

FETCH NEXT FROM FRXG_cursor 
  INTO @GoodsNum,@Model,@BarCodeID,@Additional,@GoodsType
  END 
CLOSE FRXG_cursor
DEALLOCATE FRXG_cursor

------解决方案--------------------------------------------------------
转:
-- 定义全局控制变量
declare not_found condition for sqlstate '02000'; -- 没有数据,游标结尾定
declare at_end_s1 int default 0; -- 开关定义s1(默认开-可循环)

-- 声明游标:行业门类
declare cur_hyml cursor with return for
select hyml_dm, hyml_mc
from dm_hyml
where dm_hyml.hyml_dm not in ('19', '20')
order by hyml_dm;
declare continue handler for not_found set at_end_s1=1;


loop_ml:loop
fetch cur_hyml into v_hydm,v_hymc;
if at_end_s1=1 then leave loop_ml;
else

。。。SQL语句。。。。 

end if;
end loop loop_ml;
close cur_hyml;

其实这个语法也很简单,建议你多看看数据的文档,这些问题很容易就搞定了。
------解决方案--------------------------------------------------------
DECLARE CUR_SELF CURSOR WITH RETURN FOR SELECT WLOPSQ FROM CRPDTA.F3112 WHERE WLNXOP = V_XGXM

V_XGXM 是传入变量的话,可以。

你自己试一下不就知道了?


SQL code
DECLARE v_dept CHAR(3) DEAFULT ‘ ‘;DECLARE myres_set CURSOR     FOR SELECT empno, lastname, job, salary, comm.       FROM employee       WHERE workdept = v_dept;
  相关解决方案