本人在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);
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);
-----你在做个嵌套就可以了。游标不是一次性把数据取出来的,而你又要对结果直接排序,所以会报错
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>