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

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

原文 

 

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

例:

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;

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5959478.html
,如需转载请自行联系原作者
你可能感兴趣的文章
[LeetCode] 675. Cut Off Trees for Golf Event
查看>>
SQLServer之锁简介
查看>>
从点餐小程序说起,谈谈如何从0到1设计一款toB类产品
查看>>
CSS相对定位和绝对定位
查看>>
断开TCP连接
查看>>
我的前端集成测试(一)- 认识node的assert模块
查看>>
【跃迁之路】【465天】程序员高效学习方法论探索系列(实验阶段222-2018.05.16)...
查看>>
spring4.x 集成quartz2.x 集群化配置项目实例
查看>>
Spring Boot 参考指南(开发者工具)
查看>>
TypeScript 2.9
查看>>
Linux 程序包的管理
查看>>
JavaScript 异步、栈、事件循环、任务队列
查看>>
图解 React Virtual DOM
查看>>
Day08 - HTML5 Canvas 实现彩虹画笔绘画板指南
查看>>
Spring Boot [组件学习-Spring Data JPA]
查看>>
百度云磁盘CDS、对象存储BOS技术深度解析
查看>>
Deno:来自Node之父的V8 TypeScript运行时
查看>>
姜宁谈红帽绩效考核:不关心员工具体做什么
查看>>
Trello中的Scrum
查看>>
Pivotal发布了具有新应用程序托管工具的Spring Cloud Data 1.6
查看>>