• c# 获得 oracle输出游标



    1. 定义ORACLE 带输出游标的存储过程, 输出游标定义类型为:sys_refcursor

     1 CREATE OR REPLACE PROCEDURE sp_demo (
     2    emp_no       IN       VARCHAR2,
     3    o_res1       OUT      VARCHAR2,
     4    o_res2       OUT      VARCHAR2,
     5    o_ds1        OUT      sys_refcursor,
     6    o_ds2        OUT      sys_refcursor
     7 )
     8 IS
     9    v_count   NUMBER;
    10 BEGIN
    11    OPEN o_ds1 FOR
    12       SELECT *
    13         FROM table1;
    14 
    15    OPEN o_ds2 FOR
    16       SELECT *
    17         FROM table2;
    18 
    19    o_res1 := 'ok';
    20    o_res2 := TO_CHAR (SYSDATE, 'yyyy/mm/dd hh24:mi:ss');
    21    RETURN;
    22 END;

     

    2. C#调用

      参数准备(petshop)


     1 private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans,
     2             CommandType cmdType, string cmdText, OracleParameter[] commandParameters)
     3         {
     4             if (conn.State != ConnectionState.Open)
     5                 conn.Open();
     6 
     7             cmd.Connection = conn;
     8             cmd.CommandText = cmdText;
     9             cmd.CommandType = cmdType;
    10 
    11             if (trans != null)
    12                 cmd.Transaction = trans;
    13 
    14             if (commandParameters != null)
    15             {
    16                 foreach (OracleParameter parm in commandParameters)
    17                     cmd.Parameters.Add(parm);
    18             }
    19         }

     

    //准备参数
    PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
    //获得所有输出游标,每个游标输出到ds的一个表中
    OracleDataAdapter oda = new OracleDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    oda.Fill(ds);

    //只获得第一个数据游标
    OracleDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    dt.Load(rdr);
                    rdr.Close();
  • 相关阅读:
    [转载]我的WafBypass之道(Misc篇)
    7.3 使用while 循环来处理列表和字典
    7-4__7-7练习
    7.2 while 循环
    第 7 章 用户输入和while 循环
    6.字典练习
    6.4 嵌套
    6.3 遍历字典
    6.2练习
    第 6 章 字典
  • 原文地址:https://www.cnblogs.com/baishahe/p/2505835.html
Copyright © 2020-2023  润新知