c#调用oracle存储过程,c#调用oracle存储过程
c#调用oracle存储过程
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"); }
©著作权归作者所有:来自51CTO博客作者yangyoushan的原创作品,如需转载,请注明出处,否则将追究法律责任
c#调用oracle存储过程,c#调用oracle存储过程相关推荐
- Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...
- oracle 定时任务 job 调用存储过程有回到输出参数(含out参数)
oracle 定时任务 job 调用存储过程有返回输出参数(含out参数) 因前台调用一个含有OUT参数的存储过程,同时在JOB里也想调用同一个存储过程,不想将OUT参数去掉重新建一个存储过程再被JO ...
- oracle创建包 和调用,oracle创建函数和调用存储过程和调用函数的例子(区别)...
创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...
- oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)
先对上一篇调用SQLServer的存储过程作一点补充,就是如果存储过程里有Insert,update,delete等操作,最后返回结果集,按示例代码有可能得不到数据,因为返回的数据有可能不在第一个结果 ...
- vb.net调用oracle存储过程,vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc...
vbnet2008连接oracle增删改查学习笔记(经典crud_含存储过程).doc 我的VBNETORACLE增删改查学习笔记(本源码在VBNET2008下测试通过)学习VBNET有一段时间了,之 ...
- Oracle存储过程及调用
Oracle存储过程语法 Oracle的存储过程语法如下: ? 1 2 3 4 5 6 create procedure 存储过程名称(随便取) is 在这里可以定义常量.变量.游标.复杂数据 ...
- oracle中调用过程,oracle中如何调用存储过程
oracle中如何调用存储过程 发布时间:2020-03-08 03:28:03 来源:51CTO 阅读:511 作者:lxg290 一.通过pls块来调用存储过程: declare p_dzno v ...
- oracle创建函数和调用存储过程和调用函数的例子(区别)
创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...
- oracle存储while用mysql_oracle存储过程while
Oracle下我个人认为有些事情不一定用存储过程,但还是说一下 oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN ...
- 利用oracle执行系统命令,利用oracle存储过程执行操作系统命令(转)
以下方法在WINNT,LINUX下的oracle9i上测试通过,java过程调用系统命令 首先给使用java存储过程的用户授予一定的权限 <>表示所有文件,也可以单独指定文件. r w e ...
最新文章
- mysql ldap_OpenLDAP 使用MySQL作为数据库
- 2678v3支持内存频率_电脑内存别乱加,不了解这些白花钱
- 教你怎么快速配置 React
- ae 创建图像等高线 蒙版_Pixelmator ——图像处理软件
- C语言函数题-查找数组每行的最大值
- 手把手,教你用MaxCompute+OpenSearch搭建分布式搜索引擎
- python面向对象编程指南 脚本之家_python对象及面向对象技术详解
- 工具使用-curl/wget
- mysql慢查询ep_mysql 慢查询分析
- 解决IE11安装时需要“获取更新”(IE11离线安装)
- table-首列冻结
- 图像工作回顾之五:视频检索
- npm run build: rimraf: command not found
- c++逆天改命进阶--哈希表
- 通过U盘安装系统时,提示无法在驱动器分区上安装windows的解决办法
- tmall API接口关键字获取商品数据
- Office宏病毒Virus.MSExcel.Agent.f的查杀方法
- java 初级、中级、高级工程师
- esp8266驱动电机
- 6.3 由学得用——《逆袭大学》连载