zoukankan      html  css  js  c++  java
  • [转].net 调用oracle存储过程返回多个记录集

    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/>");
    }
    }

    }

  • 相关阅读:
    Python操作Excel
    JMeter生成UUID方式
    JMeter之Beanshell用法
    JMeter后置处理器
    JMeter后置处理器
    Python之正则匹配 re库
    read(),readline() 和 readlines() 比较
    Python的位置参数、默认参数、关键字参数、可变参数之间的区别
    调查管理系统 -(6)自定义Struts2的拦截器&自定义UserAware接口&Action中模型赋值问题&Hibernate懒加载问题
    调查管理系统 -(5)Struts2配置&用户注册/登录/校验
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/4094825.html
Copyright © 2011-2022 走看看