在存储过程里面定义一个游标declare
    --创建游标   cursor mycursor is  select * from 
   product where rownum<=num;其中num是传入参数 如果num为0 则查所有的数据即cursor语句为 cursor mycursor is  select * from 
   product  如果num传入参数的值大于0 则 cursor mycursor is  select * from 
   product where rownum<=num这两者情况 如何合并为一个sql语句?

解决方案 »

  1.   


    declare
      mycursor sys refcursor;
    begin
         if num=0 then
            open mycursor for
            select * from product;
         elsif num>0 then
               open mycursor for
               select * from product
               where rownum <= num;
         else
         dbms_output.put_line(sqlerrm); 
    end;
      

  2.   


    declare
      mycursor sys refcursor;
    begin
         if num=0 then
            open mycursor for
            select * from product;
         elsif num>0 then
               open mycursor for
               select * from product
               where rownum <= num;
         else
             dbms_output.put_line(sqlerrm);
         end if;
    end;
      

  3.   


    --定义一个游标变量,应该是下面这个定义法;
    mycursor sys_refcursor;