您的位置:程序门 -> db2 -> 数据库开发



db2临时表问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


db2临时表问题[已结贴,结贴人:kevin0920]
发表于:2007-10-19 17:37:42 楼主
第一次使用临时表,遇到点问题,望达人予以解决下,先谢啦
drop   procedure   im_proc_querycorppaytran
;
create   procedure   im_proc_querycorppaytran(
in
.....
out out_proc_code varchar(5) --存储过程返回码
)
dynamic   result   sets   1

begin
--声明变量
declare   v_flowno   int   default   0;  
declare   at_end   int   default   0;  
.
.
.
declare....;

declare   global   temporary   table   session.temp(
            flowno varchar(15), --流水号
        .
        .      
    )
    with   replace
    not   logged;
--******************************************
--游标里面的记录   end
declare   cur_list   cursor   with   hold   with   return   for  
select   *   from   table_a;
       
           
declare   continue   handler   for   not   found
begin
set   sqlcode=100;
set   at_end=1;
    end;
   
declare   cur_list_temp   cursor   with   hold   with   return   for  
        select   *   from   session.temp
    for   read   only;

open   cur_list;

fetch   cur_list   into   v_flowno,...........;

  while   (at_end=0)   do
           
insert   into   session.temp   values(v_flowno.......);
 
    end   if;
fetch   cur_list   into   v_flowno,..............;
    end   while;
    close   cur_list;
    commit;
   
    open   cur_list_temp;
   
set   out_proc_code='00000';

end;

但是系统提示在****线这里提示出错,即声明临时表和声明游标之间.提示不能在这里声明游标
不知道是为什么,请高手解释下,谢谢
发表于:2007-10-22 08:39:151楼 得分:0
双休日大家可能休息了
周一上班了,请各位高手帮帮忙啊,谢谢
发表于:2007-10-22 11:12:452楼 得分:0
把cursor放到临时表前面。
发表于:2007-10-22 15:13:193楼 得分:0
放在前面不行啊,他就提示session.temp   是未定义的名字,应该先声明再使用的吧
但先声明session.temp再定义游标的话就提示发现意外的标记 <declaration   cursor>
怎么回事啊,米想法啊
发表于:2007-10-25 13:26:524楼 得分:100
我这两天也在做这个,刚解决。       临时表的定义需要单独的段。

存储过程结构:
create     sp()
p1:begin
临时表定义
p2:begin
  变量定义,
  cursor定义,
  数据处理,
end   p2;
end   p1


快速检索

最新资讯
热门点击