[转].net 调用oracle存储过程返回多个记录集
2014-11-13 14:06
288 查看
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/>");
}
}
}
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/>");
}
}
}
相关文章推荐
- .net 调用oracle存储过程返回多个记录集
- 用.NET调用Oracle存储过程返回记录集
- 用.NET调用oracle存储过程返回记录集
- 用.NET调用Oracle存储过程返回记录集
- [转].net 调用oracle存储过程返回多个记录集
- 用.NET调用Oracle存储过程返回记录集---------转载
- 使用OLE DB和ADO调用返回记录集的Oracle存储过程
- .net调用ORACLE存储过程返回结果集及函数
- 用.NET调用oracle的存储过程返回记录集
- 用.NET调用oracle的存储过程返回记录集
- mybatis springmvc调用oracle存储过程,返回记录集
- 用.NET调用oracle的存储过程返回记录集
- 用.NET调用oracle的存储过程返回记录集
- Java调用.NET XML Web Services返回的DataSet
- C#调用ORACLE存储过程返回结果集及函数
- Oracle存储过程,以游标的方式返回一个记录集
- Java调用.NET XML Web Services返回的数据集合的方法
- C#调用ORACLE存储过程返回结果集及函数
- .NET调用Oracle存储过程,使用数组类型的参数(如ArrayList)
- spring调用Oracle存储过程,并返回结果集的完整实例