博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset
阅读量:4963 次
发布时间:2019-06-12

本文共 3266 字,大约阅读时间需要 10 分钟。

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存储过程实现:

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;

 

转载于:https://www.cnblogs.com/ruishuang208/p/4193429.html

你可能感兴趣的文章
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
js 基础拓展
查看>>
C#生成随机数
查看>>
Android应用程序与SurfaceFlinger服务的连接过程分析
查看>>
Java回顾之多线程
查看>>
sqlite
查看>>
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
HDU6409 没有兄弟的舞会
查看>>
2018 Multi-University Training Contest 10 - TeaTree
查看>>