本文将示例使用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. SCRUM 12.23

    距离第二轮迭结束只有几天了. 我们全体组员现在的工作方向都在应用测试上. 明天的任务分配如下 成员 已完成任务 新任务 彭林江 落实API 自动爬虫测试 王卓 提升爬虫程序性能 正确性测试 郝倩 提升 ...

  2. Scrum Meeting 9

                第九次会议 No_00:工作情况 No_01:任务说明 待完成 已完成 No_10:燃尽图 No_11:照片记录 待更新 No_100:代码/文档签入记录 No_101:出席表 ...

  3. Linux内核分析作业 NO.7

    可执行程序的装载 于佳心  原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实 ...

  4. 软件项目第一次Sprint总结

    成果评分表: 组名 分数 原因 9-652 6 界面和谐生动,可运行,在目前阶段可时间基本操作 hzsy -2 代码下载,但实现安卓和相机调用 JYJe族 -1 实现安卓界面,完成一项功能,做得少 结 ...

  5. 实现基于SSH的门票管理系统开发的质量属性

    我要做的是一个基于SSH的门票售卖系统,在系统中常见的质量属性有:可用性.可修改性.性能.安全性.易用性. 可用性方面: 可用性是指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况 ...

  6. 网络:LVS负载均衡原理

    LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(real server)上.为 ...

  7. 关于本科毕业论文《Laguerre小波在数值积分与微分方程数值解中的应用》存在的问题与小结

    本科的毕业设计<Laguerre小波在数值积分与微分方程数值解中的应用>是通过Laguerre小波函数来近似表达某个需要求积分或解微分方程的函数,将原函数很难求得函数用小波函数表达出来,这 ...

  8. 第三次Sprint

    Not CHECKED OUT CHECKED OUT DONE!: SPRINT GOAL: BETA-READY 修改bug 完善界面

  9. (Alpha)Let's-版本发布说明

    我们的Let’s APP发布了! (下载地址在“下载与安装”部分) Alpha版本功能 Alpha版本是我们发布的第一个版本,所以仅实现了活动实体和用户实体之间的基础联系功能. 基本功能 登录和注册 ...

  10. JavaScript表单提交不能清空type为hidden的input快速解决方案

    http://stackoverflow.com/questions/2559616/javascript-true-form-reset-for-hidden-fields 把input type= ...