-
- 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;
- /
- 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存储过程返回多个记录集
最新推荐文章于 2021-04-05 11:13:26 发布