目标:计算各种类型的数目declare cursor zdzCur is select distinct zdz from mw_app.PM_NW_FS_ZDDPJZZZ;
zdz1 varchar(16);
beginif zdzCur%isopen = false then
   open zdzCur;
end if;
fetch zdzCur into zdz1;while zdzCur%found
loop
select count(*) from mw_app.PM_NW_FS_ZDDPJZZZ t where t.zdz = zdz1;
fetch zdzCur into zdz1;
end loop;
commit;
close zdzCur;
end;

解决方案 »

  1.   

    你这个需要游标吗?
    不是一条sql语句就能实现的吗?
    select count(*) from mw_app.PM_NW_FS_ZDDPJZZZ group by zdz如果你需要用这个来做的话,
    那就这样好了:
    declare
      cursor zdzCur is Select distinct zdz from mw_app.PM_NW_FS_ZDDPJZZZ ;
      zdz1 varchar(16);
      v_Count number;
    begin
      open zdzCur;
      fetch  zdzCur into zdz1;
      while zdzCur%Found Loop
         Select count(*) into v_Count From   mw_app.PM_NW_FS_ZDDPJZZZ   t   
         Where   t.zdz   =   zdz1;
         fetch   zdzCur   into   zdz1; 
      end   loop; 
      if zdzCur%isOpen then 
        close   zdzCur; 
      end if;
    end;也不知道你的commit用来做什么的?