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

    }

  • 相关阅读:
    lintcode 中等题:Evaluate Reverse Polish notation逆波兰表达式求值
    lintcode 中等题:unique Binary Search Tree 不同的二叉查找树
    lintcode 中等题:Submatrix sum is 0 和为零的子矩阵
    lintcode:递归打印数字
    lintcode :Segmemt Tree Build II
    lintcode 中等题:find the missing number 寻找缺失的数
    lintcode 中等题: Implement Trie
    lintcode 中等题:Letter Combinations of a Phone Number 电话号码的字母组合
    lintcode 中等题:Palindrome Linked List 回文链表
    [LeetCode] Merge Sorted Array
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/4094825.html
Copyright © 2011-2022 走看看