日期:2014-05-16  浏览次数:20521 次

在oracle存储过程返回数据集
返回数据集请参考如下存储过程实例:

CREATE   OR   REPLACE   PACKAGE   pkg_test  
  AS  
        TYPE   myrctype   IS   REF   CURSOR;  
   
        PROCEDURE   get   (p_id   NUMBER,   p_rc   OUT   myrctype);  
  END   pkg_test;  
  /  
   
  CREATE   OR   REPLACE   PACKAGE   BODY   pkg_test  
  AS  
        PROCEDURE   get   (p_id   NUMBER,   p_rc   OUT   myrctype)  
        IS  
              sqlstr       VARCHAR2   (500);  
        BEGIN  
              IF   p_id   =   0   THEN  
                    OPEN   p_rc   FOR  
                          SELECT   ID,   NAME,   sex,   address,   postcode,   birthday  
                              FROM   student;  
              ELSE  
                    sqlstr   :=  
                          'select   id,name,sex,address,postcode,birthday  
                        from   student   where   id=:w_id';  
                    OPEN   p_rc   FOR   sqlstr   USING   p_id;  
              END   IF;  
        END   get;  
  END   pkg_test;  
 

其中p_rc即为返回的结果集,这里使用了ref cursor。

我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html