/*在pakcage下先建包*/
CREATE OR REPLACE PACKAGE PRODUCTIDPACKAGE AS
TYPE IDCURSOR IS REF CURSOR;
END PRODUCTIDPACKAGE;/*在procedure中建存储过程*/CREATE OR REPLACE PROCEDURE PROC_ONSHERVESSINGLEPRODUCT(CUR_PRODUCT OUT PRODUCTIDPACKAGE.IDCURSOR) IS
/*cur NUMBER;*/
 BEGIN
OPEN CUR_PRODUCT FOR 
   select id from a;
---循环1
 /*LOOP 
   fetch CUR_PRODUCT into cur;    
  exit when CUR_PRODUCT%notfound;
   END LOOP;*/
--循环2
 /*  FOR PRODUCTRECORD IN CUR_PRODUCT LOOP
   --操作
  END LOOP;*/END PROC_ONSHERVESSINGLEPRODUCT;以上写法,如果在注释不放开的情况下在pl/sql可通过但一旦放开循环2 则pl/sql下不会通过,提示 “FOR PRODUCTRECORD IN CUR_PRODUCT LOOP”中的 cur_product 未定义放开循环1,pl/sql会通过,但是在java中接结果集的时候会报“提取违反顺序”,求大神们帮个忙!!!!