博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#调用oracle存储过程
阅读量:7043 次
发布时间:2019-06-28

本文共 3935 字,大约阅读时间需要 13 分钟。

CREATE OR REPLACE PACKAGE pkg_tableType  IS       type Tabletype is ref cursor;       PROCEDURE SP_CPZD        (        CPNO IN VARCHAR2,        STATUS IN VARCHAR2,        t_sql out Tabletype        );  END;  CREATE OR REPLACE package BODY pkg_tableType  is  PROCEDURE SP_CPZD  (  CPNO IN VARCHAR2,  STATUS IN VARCHAR2,  t_sql out Tabletype  )  IS  BEGIN          OPEN t_sql FOR             select *  from ball b where b.no=CPNO  and  b.type =STATUS ;    END SP_CPZD;  END pkg_tableType;  #region 存储过程操作       ///     /// 执行存储过程    ///     /// 存储过程名    /// 存储过程参数    /// 
OracleDataReader
public static OracleDataReader RunProcedure(string storedProcName, IDataParameter[] parameters ) { OracleConnection connection = new OracleConnection(connectionString); OracleDataReader returnReader; connection.Open(); OracleCommand command = BuildQueryCommand( connection,storedProcName, parameters ); command.CommandType = CommandType.StoredProcedure; returnReader = command.ExecuteReader(); return returnReader; } /// /// 执行存储过程 /// /// 存储过程名 /// 存储过程参数 /// DataSet结果中的表名 ///
DataSet
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName ) { using (OracleConnection connection = new OracleConnection(connectionString)) { DataSet dataSet = new DataSet(); connection.Open(); OracleDataAdapter sqlDA = new OracleDataAdapter(); sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters ); sqlDA.Fill(dataSet, tableName ); connection.Close(); return dataSet; } } /// /// 构建 OracleCommand 对象(用来返回一个结果集,而不是一个整数值) /// /// 数据库连接 /// 存储过程名 /// 存储过程参数 ///
OracleCommand
private static OracleCommand BuildQueryCommand(OracleConnection connection,string storedProcName, IDataParameter[] parameters) { OracleCommand command = new OracleCommand(storedProcName, connection ); command.CommandType = CommandType.StoredProcedure; foreach (OracleParameter parameter in parameters) { command.Parameters.Add( parameter ); } return command; } /// /// 执行存储过程,返回影响的行数 /// /// 存储过程名 /// 存储过程参数 /// 影响的行数 ///
public static int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected ) { using (OracleConnection connection = new OracleConnection(connectionString)) { int result; connection.Open(); OracleCommand command = BuildIntCommand(connection,storedProcName, parameters ); rowsAffected = command.ExecuteNonQuery(); result = (int)command.Parameters["ReturnValue"].Value; //Connection.Close(); return result; } } /// /// 创建 OracleCommand 对象实例(用来返回一个整数值) /// /// 存储过程名 /// 存储过程参数 ///
OracleCommand 对象实例
private static OracleCommand BuildIntCommand(OracleConnection connection,string storedProcName, IDataParameter[] parameters) { OracleCommand command = BuildQueryCommand(connection,storedProcName, parameters ); command.Parameters.Add( new OracleParameter ( "ReturnValue", OracleType.Int32,4,ParameterDirection.ReturnValue, false,0,0,string.Empty,DataRowVersion.Default,null )); return command; } #endregion public DataSet GetCPResult(string s_aN_CPNO) { OracleParameter[] parameter = { new OracleParameter("CPNO",OracleType.VarChar,100), new OracleParameter("STATUS",OracleType.VarChar,100), new OracleParameter("t_sql", OracleType.Cursor)}; parameter[0].Value = s_aN_CPNO; parameter[1].Value = "3"; parameter[2].Direction = System.Data.ParameterDirection.Output; return RunProcedure("pkg_tabletype.sp_cpzd", parameter, "ds"); }

转载地址:http://zbqal.baihongyu.com/

你可能感兴趣的文章
table中文字溢出时用省略号表示
查看>>
jQuery学习(二)
查看>>
程序员的修养 -- 如何写日志(logging)
查看>>
[Splay]Luogu 3960 NOIP2017 列队
查看>>
网络流——最大流问题例题
查看>>
instanceof 操作符实现原理解析
查看>>
WebApi 返回小驼峰式 json 格式,并格式化日期
查看>>
阿里云日志api创建logStore
查看>>
Codeforces 839B Game of the Rows【贪心】
查看>>
最小表示法(个人模版)
查看>>
灰色理论预测模型
查看>>
Git push提示pre-receive hook declined
查看>>
一套帮助你理解C语言的测试题(转)
查看>>
黄聪:如何添加360浏览器(chrome)添加JavaScript例外,禁止网站加载JS
查看>>
黄聪:如何关闭phpstorm的typo拼写检查
查看>>
iOS解析数字字符串会转变成科学计数法问题
查看>>
用C++写程序的一些感悟
查看>>
SVN可视化管理工具——Subversion Edge使用
查看>>
第七日
查看>>
xpath路径表达式笔记
查看>>