本人在oracle form 中写的以下程式,执行时出错,但是把ORDER BY 语句去掉后就没有问题,难道在CURSOR里不能使用order by吗?如果不可以,那要怎么实现排序呢?请大侠们帮帮忙!CURSOR INSTANT_QTY_C IS(
       SELECT mm.merger_no,mm.hs_name, NVL (SUM (mm.book_inv_qty), 0) inv_qty        
         FROM gib_instant_inv_v mm
  GROUP BY MM.merger_no, MM.hs_name
  ORDER BY MM.MERGER_NO);

解决方案 »

  1.   


    -----你在做个嵌套就可以了。游标不是一次性把数据取出来的,而你又要对结果直接排序,所以会报错
    SQL> set serveroutput on;
    SQL> 
    SQL> declare
      2    cursor tt is(
      3      select * from (select * from scott.dept t order by t.deptno));
      4  begin
      5    dbms_output.put_line('111');
      6  end;
      7  /111PL/SQL procedure successfully completedSQL>