本文将示例使用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. python之魔法方法介绍

    1.1. 简介 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加“魔法”的特殊方法. 它们经常是两个下划线包围来命名的(比如 __init__ , __lt__ ) ...

  2. slurm用户快速入门手册

    1. 概述2. 架构3. 命令3.1 sacct3.2 sattach3.4 sbatch3.5 sbcast3.6 scancel3.7 scontrol3.8 sinfo3.9 smap3.10 ...

  3. U盘、移动硬盘等弹出 “文件或目录损坏且无法读取” 实测解决办法

    U盘跟其他的机器一样,使用久了难免会出故障,比如常见的弹出一个文件或目录损坏且无法读取的对话框,吓你一跳,整个U盘都损坏的意思,那里面的资料怎么办呢,所以很多人很着急,其实遇到这种情况一般都是之前使用 ...

  4. Linux系统本地yum源环境配置记录

    由于IDC的一些服务器没有外网,不能对外访问.所以打算部署一套内网的yum源环境,以供内网服务器使用.以下简单记录下操作过程: 1)下载centos6.9和centos7.3的镜像,并挂载 [root ...

  5. Linux内核分析作业六

    1.阅读理解task_struct数据结构 2.分析fork函数对应的内核处理过程sys_clone,理解创建一个新进程如何创建和修改task_struct数据结构: fork进程的代码 #inclu ...

  6. linux学习笔记【转】

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  7. Ajax的注意事项

    case 1: 无论是使用原生的JavaScript,还是JQuery,通过Ajax请求后端程序数据,返回的数据默认是字符串,字符串,字符串,重要的事情说三遍!!! case 2: 不要尝试直接将返回 ...

  8. 链表数据结构(C/C++语言实现)

    注意:没有使用malloc和free:加了一个头文件,用于清屏和暂停:还有就是一个错误特别容易被忽略,那就是主函数中声明了LinkList p,然后就直接创建链表,忘了给p分配空间.一定要先初始化链表 ...

  9. springframework内BeanUtils源码使用记录一

    package org.springframework.beans; public abstract class BeanUtils /** * Copy the property values of ...

  10. the confilict between validation and readonly in jquery

    How can I disable jquery validation on readonly fields? http://stackoverflow.com/questions/10803294/ ...