Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset
原文 Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset
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[].Direction = ParameterDirection.Output;
parms[].Direction = ParameterDirection.Output;
parms[].Direction = ParameterDirection.Output;
parms[].Value = type;
parms[].Value = BargainOrderCode;
parms[].Value = ParkUserId;
parms[].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;
Oracle存储过程实现返回多个结果集 在构造函数方法中使用 dataset的更多相关文章
- oracle存储过程(返回列表的存储结合游标使用)总结 以及在java中的调用
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励. 以下是我在开发项目中第一次 ...
- Oracle 存储过程例子返回记录集
转载:https://www.cnblogs.com/mikalshao/articles/1454134.html Oracle 不支持批量查询,因此无法从一个命令返回多个结果集.使用存储过程时,返 ...
- Mybatis下配置调用Oracle自定义函数返回的游标结果集
在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...
- C# 获取 oracle 存储过程的 返回值1
/// <summary> /// 返回对应表的模拟自增字段值 /// </summary> /// <param name="tablename"& ...
- ibatis.net调用oracle存储过返回游标SYS_REFCURSOR结果集
最近在用ibatis.net框架和oracle 11g开发一套程序.其中有一个需求就是通过存储过程,查询指定条件的数据集. 但是在开发的过程中遇到了问题,问题如下: 1.如何通过ibatis.net执 ...
- mybatis springmvc调用oracle存储过程,返回记录集
参考: http://bbs.csdn.net/topics/390866155 辅助参考: http://www.2cto.com/kf/201307/226848.html http://blog ...
- java调用oracle存储过程,返回结果集
package com.srie.db.pro; import java.sql.CallableStatement; import java.sql.Connection; import java. ...
- Spring data jpa 调用存储过程处理返回参数及结果集
一.环境 1.此随笔内容基于spring boot整合的spring data jpa项目, 2.数据库为mysql 5.7.9版本 二.内容 1. 新建存储过程 pro_query_object B ...
- Oracle 存储过程调用返回游标的另一个存储过程。
一个扩展存储过程调用另一个存储过程,示例: 被调用存储过程:最后会返回一个游标,游标返回一个值.调用这个存储过程的存储过程同样需要获取它. procedure SearchBill --根据到货单号查 ...
随机推荐
- Ubuntu环境下Nutch1.2 二次开发(添加中文分词)
前提nutch1.2已部署到eclipse中 详见:http://www.cnblogs.com/cy163/archive/2013/02/19/2916419.html 1 部署IKAnalyze ...
- hdu 1376 Octal Fractions
刚开始做这题时,用的是0.75[8]=(7/8+5/64)[10]这个,但是总是WA…………无语了…… 后来看别人的解题报告,知道了另外一个就是0.75[8]=((5/8+7)/8)[10],从低位向 ...
- Highcharts中初始化最大值与最小值的柱状图
<!doctype html> <html lang="en"> <head> <script type="text/javas ...
- 关于inline-block在IE8下无效的解决方法
<style> .divClass{ width:500px; border:1px solid #ccc; } /*IE8下可以不用加(*zoom:1;*display:inline;需 ...
- lintcode 中等题: Implement Trie
题目 Implement Trie Implement a trie with insert, search, and startsWith methods. 样例 注意 You may assu ...
- java工具类系列 (四.SerializationUtils)
java工具类系列 (四.SerializationUtils) SerializationUtils该类为序列化工具类,也是lang包下的工具,主要用于序列化操作 import java.io.Se ...
- Socket称"套接字"
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 二.利用Socket建立网络连接的步骤 建立Socket连接至少需要一对 ...
- seafile安装日志(非教程)
需要的软件: python 2.7.x(从 Seafile 5.1 开始,python 版本最低要求为2.7) python-setuptools python-imaging python-mysq ...
- IntelliJ IDEA集成svn
IntelliJ IDEA如何集成svn呢? 1. 首先配置下载并配置svn软件,推荐使用SlikSvn. 下载地址https://sliksvn.com/download/,下载最近版本
- 76. Minimum Window Substring
题目: Given a string S and a string T, find the minimum window in S which will contain all the charact ...