本文将示例使用C#的ADO.NET技术调用Oralce的存储过程和函数及操作Oracle数据库。

在oracle的hr数据库中建立存储过程

在oralce的hr数据库中建立函数

新建控制台项目,在主函数添加代码:

            string strConn = "Data Source=jayjay;User ID=hr;Password=oracle;Unicode=True";

             //调用存储过程
using (OracleConnection conn = new OracleConnection(strConn))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand("INSERT_PROCEDURE", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
}
}
//显示调用存储过程后的数据
using (OracleConnection conn = new OracleConnection(strConn))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand("select * from Jobs where JOB_ID='MY_JOB'", conn))
{
cmd.CommandType = CommandType.Text;
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);//执行cmd.ExecuteReader();并将结果添加到DataSet容器中
DataRow row = dataSet.Tables[].Rows[];
Console.WriteLine("执行select * from Jobs where JOB_ID=MY_JOB之后得到的信息:");
for(int i = ;i<;i++)
{
Console.WriteLine(row[i]);
}
}
} //调用函数
using (OracleConnection conn = new OracleConnection(strConn))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand("UPDATE_MIN_SALARY", conn))
{
cmd.CommandType = CommandType.StoredProcedure; // 将参数类型设置为 返回值类型
OracleParameter parameter = new OracleParameter();
parameter.Direction = ParameterDirection.ReturnValue;
parameter.OracleType = OracleType.Int32;
cmd.Parameters.Add(parameter); cmd.ExecuteNonQuery();
Console.WriteLine("受影响的行数为:" + parameter.Value);
}
} //显示调用函数后的数据
using (OracleConnection conn = new OracleConnection(strConn))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand("select * from Jobs where MIN_SALARY=4000", conn))
{
cmd.CommandType = CommandType.Text;
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet); Console.WriteLine("执行select * from Jobs where MIN_SALARY=4000之后得到的行数:" + dataSet.Tables[].Rows.Count);
}
} Console.ReadKey();
}

ps:由于使用的是32位的老版本oracle 10g,所以项目的目标平台要改为x86,即32位平台,不然conn.open();会报错!

使用ADO.NET操作Oracle数据库的更多相关文章

  1. ado.net 之 oracle 数据库

    ado.net 操作oracle 数据库 跟操作mssql 的原来基本一样.只是使用不同的命名空间而已.下面举几个例子: 一. C#读取oracle数据库的表格 ///ado.net 读取table ...

  2. (转) C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库

    原贴链接:https://www.cnblogs.com/mq0036/p/11052359.html C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracl ...

  3. 在.NetCore(C#)中使用ODP.NET Core+Dapper操作Oracle数据库

    前言 虽然一直在说"去IOE化",但是在国企和政府,Oracle的历史包袱实在太重了,甚至很多业务逻辑都是写在Oracle的各种存储过程里面实现的-- 我们的系统主要的技术栈是Dj ...

  4. ASP.NET操作ORACLE数据库之模糊查询

    ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...

  5. Java操作Oracle数据库以及调用存储过程

    操作Oracle数据库 publicclass DBConnection {     //jdbc:oracle:thin:@localhost:1521:orcl     publicstaticf ...

  6. PHP操作Oracle数据库

    原文出处 (这是来自“百度文库”中的文章写得很不错) PHP操作Oracle数据库(OCI数据抽象层)OCI(Oracle 8 Call-Interface)是PHP中内置的数据库抽象层函数.下面针对 ...

  7. Python使用cx_Oracle模块连接操作Oracle数据库

    1. 简单介绍 cx_Oracle 是一个用来连接并操作 Oracle 数据库的 Python 扩展模块, 支持包含 Oracle 9.2 10.2 以及 11.1 等版本号 2.安装 最好是去官网h ...

  8. Java java jdbc thin远程连接并操作Oracle数据库

    JAVA jdbc thin远程连接并操作Oracle数据库 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 编码工具:Eclipse 编码平台:W ...

  9. loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试

    调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...

随机推荐

  1. JavaScript术语:shim 和 polyfill

    转自:https://www.html.cn/archives/8339 在学习和使用 JavaScript 的时候,我们会经常碰到两个术语:shim 和 polyfill.它们有许多定义和解释,意思 ...

  2. cf166e 在四面体上寻找路线数 递推,取模

    来源:codeforces                 E. Tetrahedron   You are given a tetrahedron. Let's mark its vertices ...

  3. 必应词典案例分析——个人博客作业week3

    案例分析 ——必应词典客户端 软件缺陷常常又被叫做Bug,即为计算机软件或程序中存在的某种破坏正常运行能力的问题.错误,或者隐藏的功能缺陷. 缺陷的存在会导致软件产品在某种程度上不能满足用户的需要.I ...

  4. linux内核分析第八次实验

    20135118 罗鹏越 本周学习的是linux内核中的进程调度,之前我们在操作系统中有讲解进程调度的分类,以及一些调度算法.而linux中的进程调度有所不同,首先老师讲解了进程调度和进程调度的时机, ...

  5. 二维数组转化为一维数组 contact 与apply 的结合

    将多维数组(尤其是二维数组)转化为一维数组是业务开发中的常用逻辑,除了使用朴素的循环转换以外,我们还可以利用Javascript的语言特性实现更为简洁优雅的转换.本文将从朴素的循环转换开始,逐一介绍三 ...

  6. Docker attach

    Description Attach local standard input, output, and error streams to a running container Usage dock ...

  7. jQuery中click事件多次触发解决方案

    jQuery 中元素的click事件中绑定其他元素的click事件. 因为jQuery中的click事件会累计绑定,导致事件注册越来越多. 解决方案: 1.能够避开,避免把click事件绑定到其他元素 ...

  8. charCodeAt与fromCharCode

    charCodeAt() 方法可返回指定位置的字符的 Unicode 编码 这个返回值是 0 - 65535 之间的整数. stringObject.charCodeAt(index) /* a-z  ...

  9. VS2012、2013使用Mysql数据库创建EF的AOD.NET实体模型

    VS2012.2013使用Mysql数据库创建EF的AOD.NET实体模型: 1.关闭VS,首先安装mysql-connector-net-6.8.3.(安装后EF创建实体模型时就可以找到Mysql的 ...

  10. Oracle 的ORION工具简单使用

    1. 下载地址: http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html 2. linux x64 还有 windows的 ...