且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset

更新时间:2022-02-05 11:00:02

原文 Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset

 

DataSet相当你用的数据库; DataTable相当于你的表。一个 DataSet 可以包含多个 DataTable。如果用datatable只适合返回一个结果集(游标)的信息。

例:

Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset
public DataSet Get_TRAFeeQinfenStatus(int type, string BargainOrderCode, string ParkUserId, string BerthCode)
        { 
           

            OracleParameter[] parms = {    
                                        new OracleParameter("VRETURN_LIST1", OracleType.Cursor),
                                        new OracleParameter("VRETURN_LIST2", OracleType.Cursor),
                                        new OracleParameter("VRETURN_LIST3", OracleType.Cursor),
                                        new OracleParameter("Vtype", OracleType.Number),
                                        new OracleParameter("VBargainOrderCode", OracleType.VarChar),
                                        new OracleParameter("VParkUserId", OracleType.VarChar),
                                        new OracleParameter("VBerthCode", OracleType.VarChar)
                                        
                                     };
            parms[0].Direction = ParameterDirection.Output;
            parms[1].Direction = ParameterDirection.Output;
            parms[2].Direction = ParameterDirection.Output;
            parms[3].Value = type;
            parms[4].Value = BargainOrderCode;
            parms[5].Value = ParkUserId;
            parms[6].Value = BerthCode;

            DataSet ds = OracleHelper.ExecuteDataset(CommandType.StoredProcedure, string.Format("{0}.GET_TRAFEEQINFENSTATUS", CADRE_SZRPP_PK), parms);
            return ds;

        }
Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset

 

oracle存储过程实现:

Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset
 PROCEDURE GET_TRAFEEQINFENSTATUS
    (
         
      VRETURN_LIST1 OUT OUTPUTLIST,--查退费单
      VRETURN_LIST2 OUT OUTPUTLIST,--查欠费单
      VRETURN_LIST3 OUT OUTPUTLIST,--缴费记录
      VTYPE IN INTEGER DEFAULT NULL,
      VBARGAINORDERCODE IN TRA_ORDERPAYMENTINFO.BARGAINORDERCODE%TYPE DEFAULT NULL, 
      VPARKUSERID IN TRA_ORDERPAYMENTINFO.PARKUSERID%TYPE DEFAULT NULL,
      VBERTHCODE IN TRA_ORDERPAYMENTINFO.BERTHCODE%TYPE DEFAULT NULL
    )
     IS
     VTYPENUMBER  INTEGER;
     VPAYSTATUS   NVARCHAR2(4000);
     VARREARSSTATUS NVARCHAR2(4000);
     VREFUNDSTATUS  NVARCHAR2(4000);
    
    BEGIN
      SELECT  VTYPE INTO VTYPENUMBER FROM DUAL;
     
     IF (VTYPENUMBER=2)
        THEN      
      
    OPEN VRETURN_LIST1  FOR 
    SELECT REFUNDSTATUS,PAYSTATUS FROM  TRA_REFUNDORDER  WHERE BARGAINORDERCODE=VBARGAINORDERCODE
       AND PARKUSERID=VPARKUSERID AND BERTHCODE=VBERTHCODE;
    
    
    --解决: ORA-24338: 未执行语句句柄  一定要进行对游标输出参数值赋值
      ELSE  OPEN VRETURN_LIST1 FOR SELECT VREFUNDSTATUS AS REFUNDSTATUS,VPAYSTATUS AS PAYSTATUS  FROM DUAL;
     
     END IF;
       
      
      IF (VTYPENUMBER=3 )
         THEN
        
       OPEN VRETURN_LIST2  FOR
        SELECT ARREARSSTATUS FROM  TRA_ARREARSORDER WHERE BARGAINORDERCODE=VBARGAINORDERCODE
       AND PARKUSERID=VPARKUSERID AND BERTHCODE=VBERTHCODE;
     
     ELSE   OPEN VRETURN_LIST2 FOR SELECT VARREARSSTATUS AS ARREARSSTATUS  FROM DUAL;
  
      END IF;
      
      IF (VTYPENUMBER=5 )
          
          THEN
       
       OPEN VRETURN_LIST3  FOR 
       SELECT PAYSTATUS FROM TRA_ORDERPAYMENTINFO WHERE BARGAINORDERCODE=VBARGAINORDERCODE
       AND PARKUSERID=VPARKUSERID AND BERTHCODE=VBERTHCODE;     
   
   
      ELSE   OPEN VRETURN_LIST3 FOR SELECT VPAYSTATUS AS PAYSTATUS  FROM DUAL;
        
     
      END IF;
      END;
Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的***、好奇、充满创造力的想法被现实的框架所束缚,让创造力***成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。





    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5959478.html,如需转载请自行联系原作者