本文转自: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存储过程返回多个记录集的更多相关文章

  1. java调用oracle存储过程返回多条结果集

    oracle版本:11g oracle存储过程,使用游标的方式返回多行.多列数据集合: CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT, ...

  2. 123 c#调用oracle存储过程返回数据集 --通过oracle存储过程返回数据集

    c#调用oracle存储过程返回数据集 2008-12-20 10:59:57|  分类: net|字号 订阅   CREATE OR REPLACE PACKAGE pkg_tableTypeIS  ...

  3. c#调用oracle存储过程返回数据集

    c#调用oracle存储过程返回数据集 2008-12-20 10:59:57|  分类: net|字号 订阅   CREATE OR REPLACE PACKAGE pkg_tableTypeIS  ...

  4. Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例

    Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13|  分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...

  5. 160307、Java调用Oracle存储过程返回结果集

    一:无返回值的存储过程调用 存储过程: CREATE OR REPLACE PROCEDURE PRO_1(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)   AS BEGI ...

  6. myBatIs.Net 调用Oracle 存储过程返回游标

    找了好久,网上也没示例,全是java的,没办法,后来看到一个网上别人写的例子. http://www.myfirm.cn/blog/article/Control/13.html 上面照套还是出错,我 ...

  7. mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析

    首先根据这篇文章:http://www.cnblogs.com/coolzdp/p/7717332.html 我们知道存储过程中 SELECT * INTO 如果没有记录是不会往下执行的,直接抛出NO ...

  8. 用java 调用oracle存储过程总结

    SSM-Mybatis调用Oracle存储过程返回结果集(游标)示例 https://www.jianshu.com/p/0ae6d9d66d61 用java调用oracle存储过程总结 //1.ca ...

  9. jdbctemplate 调用oracle 有返回(会话型临时表数据的)结果的存储过程

    注:本文为博主 原创. jdbctemplate 调用oracle存储过程 事务 临时表  有返回结果 1:java 代码 本逻辑代码本是想把 java 代码里的list<Strign>类 ...

随机推荐

  1. STM32软件仿真的一个注意点

    最近才做的板子由于自己的粗心把串口线搞反了,还好只有两条,飞线解决,而且现在还只是样板,但是还是应该引以为戒,以后做硬件一定要谨慎. 今天同事出差把CAN分析仪拿走了,本来在开发板上调试好的程序不知为 ...

  2. activemq p2p方式

    package ch02.chat; import java.io.Serializable; import javax.jms.Connection; import javax.jms.Connec ...

  3. 计算N的阶层

    int factorial(int n) { int i, result; ; i <= n; i++) result *= i; return result; } int factorial2 ...

  4. BNUOJ-26586 Simon the Spider 最小生成树+枚举

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26586 题意:给一个图,每条边有一个权值.要你求选择一棵树,权值和为sum,然后在树上选择 ...

  5. ffmpeg ffprobe ffplay

    ./ffprobe -print_format json -show_format -show_frames -select_streams v -i ../hhh.flv ./ffprobe -pr ...

  6. 【翻译】Android避免内存泄露(Activity的context 与Context.getApplicationContext)

    原谅地址:http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html ,英文原文在翻译之后 Android 应用 ...

  7. 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 ...

  8. A Tour of Go Function closures

    Go functions may be closures. A closure is a function value that references variables from outside i ...

  9. python 定制类

    看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方法我们也知道是为了能让cla ...

  10. 一步一步学数据结构之n--n(图遍历--深度优先遍历--非递归实现)

    前面已经说了图的深度优先遍历算法,是用递归实现的,而在这里就讲一下用非递归实现,需要借助栈: 算法思想:        1. 栈初始化        2. 输出起始顶点,起始顶点改为“已访问”标志,将 ...