两个游标嵌套使用出错

SoftwKLC 2008-09-07 10:20:57
大家好:
怎么在程序体内使用游标,红色标记的那个位置不能声明游标,怎么解决?或者怎么样优化此存储过程实现我想要的功能,
解决马上结帐,谢谢


create procedure testsql(out osql varchar(8000))
language sql
begin
declare defaultsql varchar(8000);
declare sql varchar(8000);
declare v_formulaid int;
declare v_itemname varchar(50);
declare v_formula varchar(100);
declare v_count int;
declare v_countitem int;

declare c1 cursor for
select formulaid from salaryformula order by formulaid;

select count(1) into v_count from salaryformula;
open c1;
while v_count>0 do
set defaultsql='update tblpaylistsheetitem set ';
fetch c1 into v_formulaid;
declare c1item cursor for select itemname,formula from salaryformulaitem where formulaid= v_formulaid order by formulaindex;
select count(1) into v_countitem from salaryformulaitem where formulaid= v_formulaid;
open c1item;
while v_countitem>0 do
fetch c1item into v_itemname,v_formula;
set defaultsql=defaultsql || replace(replace((',' || v_itemname || ' = ' || v_formula),'[',''),']','');
set v_countitem=v_countitem-1;
end while;
close c1item;
set sql=sql+defaultsql +' where salarytype='' || v_formulaid || '';';
set v_count=v_count-1;
end while;
close c1;
set osql=sql;
end@
...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeah920 2008-11-04
  • 打赏
  • 举报
回复
学习了。
Lingzd 2008-11-03
  • 打赏
  • 举报
回复
自己已经解决了,那就赶紧结贴呀,散分呀。不然信誉不好的。哈哈
  • 打赏
  • 举报
回复
我晕,怎么都要有个交代啊,LZ到底是为什么
gaoxulaiguo 2008-10-16
  • 打赏
  • 举报
回复
。。。
liyan93834183 2008-09-08
  • 打赏
  • 举报
回复
jf
SoftwKLC 2008-09-07
  • 打赏
  • 举报
回复
自己已经解决了,谢谢!

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧