博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转].net 调用oracle存储过程返回多个记录集
阅读量:5303 次
发布时间:2019-06-14

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

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 = 0; j < ds.Tables.Count; j++)
{
for (int i = 0; i < ds.Tables[j].Rows.Count; i++)
{
for (int k = 0; 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 = 0; j < ds.Tables.Count; j++)
{
for (int i = 0; i < ds.Tables[j].Rows.Count; i++)
{
for (int k = 0; k < ds.Tables[j].Columns.Count; k++)
{
Response.Write(ds.Tables[j].Rows[i][k].ToString() + "|");
}
Response.Write("<br/>");
}
}
}

转载于:https://www.cnblogs.com/aaa6818162/p/4094825.html

你可能感兴趣的文章
bzoj千题计划140:bzoj4519: [Cqoi2016]不同的最小割
查看>>
【Scala】Scala之Packaging and Imports
查看>>
【译】Java编程动态性,第 2部分: 反射简介
查看>>
png8、16、24、32位的区别
查看>>
使用input range滑块,控制元素transform rotate旋转样式
查看>>
vue.js 配置axios 用来ajax请求数据
查看>>
Delphi基础语法
查看>>
ajax的用法 资料
查看>>
端口映射
查看>>
Java操作Xml
查看>>
HDU1003
查看>>
week one(3)—Gradient descent
查看>>
hadoop入门笔记MapReduce简介(三)
查看>>
Ubuntu 16.04设置开机关机时显示命令详细信息不显示进度条Logo
查看>>
Mac安装IntelliJ IDEA时快捷键冲突设置
查看>>
Mac拷贝/复制文件夹路径快捷键
查看>>
冒泡型事件运行顺序
查看>>
video小窗播放
查看>>
Xcode常用快捷键
查看>>
HTTPS
查看>>