[转].net 调用oracle存储过程返回多个记录集
本文转自:http://www.netwinform.com/articleinfo.aspx?id=17
存储过程: CREATE OR REPLACE PROCEDURE p_query_cs (
p_infotype IN VARCHAR2,
p_fromareacode IN VARCHAR2,
p_toareacode IN VARCHAR2,
p_keytype IN NUMBER,
r_cursor1 OUT sys_refcursor, --结果集
r_cursor2 OUT sys_refcursor --结果集
)
IS
BEGIN
OPEN r_cursor1 FOR
SELECT *
FROM permit_menu; OPEN r_cursor2 FOR
SELECT *
FROM permit_privilege;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
RAISE;
END p_query_cs;
/ cs程序 using System.Data.OleDb;
using System.Data.OracleClient; protected void cs1()
{
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection("Provider=OraOLEDB.Oracle.1;Password=***;User ID=***;Data Source=***;Persist Security Info=True;PLSQLRSet=1;"))
{
OleDbCommand comm = new OleDbCommand();
comm.Connection = conn;
comm.CommandText = "p_query_cs";
comm.CommandType = CommandType.StoredProcedure;
OleDbDataAdapter da = new OleDbDataAdapter(comm);
// da.TableMappings.Add("table1", "PERMIT_MENU");
// da.TableMappings.Add("table2", "PERMIT_PRIVILEGE");
da.Fill(ds);
for (int j = ; j < ds.Tables.Count; j++)
{
for (int i = ; i < ds.Tables[j].Rows.Count; i++)
{
for (int k = ; k < ds.Tables[j].Columns.Count; k++)
{
Response.Write(ds.Tables[j].Rows[i][k].ToString() + "|");
}
Response.Write("<br/>");
}
} }
} protected void cs3()
{
OracleConnection conn = new OracleConnection("Data Source=***;User Id=***;Password=***");
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "p_query_cs";
cmd.Parameters.Add("r_cursor", OracleType.Cursor).Direction = ParameterDirection.Output;
cmd.Parameters.Add("r_cursor1", OracleType.Cursor).Direction = ParameterDirection.Output;
cmd.CommandType = CommandType.StoredProcedure;
OracleDataAdapter da = new OracleDataAdapter(cmd);
da.TableMappings.Add("Table", "PERMIT_MENU");
da.TableMappings.Add("Table1", "PERMIT_PRIVILEGE");
DataSet ds = new DataSet();
da.Fill(ds);
for (int j = ; j < ds.Tables.Count; j++)
{
for (int i = ; i < ds.Tables[j].Rows.Count; i++)
{
for (int k = ; k < ds.Tables[j].Columns.Count; k++)
{
Response.Write(ds.Tables[j].Rows[i][k].ToString() + "|");
}
Response.Write("<br/>");
}
} }
[转].net 调用oracle存储过程返回多个记录集的更多相关文章
- java调用oracle存储过程返回多条结果集
oracle版本:11g oracle存储过程,使用游标的方式返回多行.多列数据集合: CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT, ...
- 123 c#调用oracle存储过程返回数据集 --通过oracle存储过程返回数据集
c#调用oracle存储过程返回数据集 2008-12-20 10:59:57| 分类: net|字号 订阅 CREATE OR REPLACE PACKAGE pkg_tableTypeIS ...
- c#调用oracle存储过程返回数据集
c#调用oracle存储过程返回数据集 2008-12-20 10:59:57| 分类: net|字号 订阅 CREATE OR REPLACE PACKAGE pkg_tableTypeIS ...
- Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例
Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13| 分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...
- 160307、Java调用Oracle存储过程返回结果集
一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS BEGI ...
- myBatIs.Net 调用Oracle 存储过程返回游标
找了好久,网上也没示例,全是java的,没办法,后来看到一个网上别人写的例子. http://www.myfirm.cn/blog/article/Control/13.html 上面照套还是出错,我 ...
- mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析
首先根据这篇文章:http://www.cnblogs.com/coolzdp/p/7717332.html 我们知道存储过程中 SELECT * INTO 如果没有记录是不会往下执行的,直接抛出NO ...
- 用java 调用oracle存储过程总结
SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.ca ...
- jdbctemplate 调用oracle 有返回(会话型临时表数据的)结果的存储过程
注:本文为博主 原创. jdbctemplate 调用oracle存储过程 事务 临时表 有返回结果 1:java 代码 本逻辑代码本是想把 java 代码里的list<Strign>类 ...
随机推荐
- STM32软件仿真的一个注意点
最近才做的板子由于自己的粗心把串口线搞反了,还好只有两条,飞线解决,而且现在还只是样板,但是还是应该引以为戒,以后做硬件一定要谨慎. 今天同事出差把CAN分析仪拿走了,本来在开发板上调试好的程序不知为 ...
- activemq p2p方式
package ch02.chat; import java.io.Serializable; import javax.jms.Connection; import javax.jms.Connec ...
- 计算N的阶层
int factorial(int n) { int i, result; ; i <= n; i++) result *= i; return result; } int factorial2 ...
- BNUOJ-26586 Simon the Spider 最小生成树+枚举
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26586 题意:给一个图,每条边有一个权值.要你求选择一棵树,权值和为sum,然后在树上选择 ...
- ffmpeg ffprobe ffplay
./ffprobe -print_format json -show_format -show_frames -select_streams v -i ../hhh.flv ./ffprobe -pr ...
- 【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)
原谅地址:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html ,英文原文在翻译之后 Android 应用 ...
- 100% opacity UILabel over a 50% opacity background (UIView?) UIView是百分之50透明而上面的UILable是100%不透明
So right now I have a UIView with a UILabel in it. I want the background to have an opacity < 1.0 ...
- A Tour of Go Function closures
Go functions may be closures. A closure is a function value that references variables from outside i ...
- python 定制类
看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让cla ...
- 一步一步学数据结构之n--n(图遍历--深度优先遍历--非递归实现)
前面已经说了图的深度优先遍历算法,是用递归实现的,而在这里就讲一下用非递归实现,需要借助栈: 算法思想: 1. 栈初始化 2. 输出起始顶点,起始顶点改为“已访问”标志,将 ...