因为游标只是可以定义为变量使用, 不是oracle对象!!

解决方案 »

  1.   

    create procedure pro_test
    as
    ...
      type cur_type is ref cursor;
      mycur cur_type;
      v_sql string(1000);
    ...
    begin
      ...
      v_sql:='select ...';
      open mycur for v_sql;
      fetch mycur into ...;
      loop
        exit when mycur%notfound;
        -- do something ;
      end loop;
      ... 
      exception
        ...
    end pro_test; 
        
      
      

  2.   

    sorry呵呵,我说的是在参数里不能声明游标类型!!^_^
      

  3.   

    jiezhi(相逢何必曾相识) , 你写错了,运行时三次死循环。不过还得谢谢你。create procedure pro_test
    as
    ...
      type cur_type is ref cursor;
      mycur cur_type;
      v_sql string(1000);
    ...
    begin
      ...
      v_sql:='select ...';
      open mycur for v_sql;
      
      loop
        fetch mycur into ...;
        exit when mycur%notfound;
        -- do something ;
      end loop;
      ... 
      exception
        ...
    end pro_test;