`

C#调用ORACLE存储过程返回结果集及函数

    博客分类:
  • C#
阅读更多

ORACLE段:


首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集。
1:建立PACKAGE:
CREATE OR REPLACE package SCOTT.pk_wt
is
type mytype is ref cursor;
procedure p_wt(mycs out mytype);
function f_get(str in varchar2)
return varchar2;
end;
/
说明:其实PACKAGE只是个声明罢了。我们在这里定义了一个存储过程返回结集和一个函数,返回字符串。

2:建立PACKAGE BODY:
CREATE OR REPLACE package BODY SCOTT.pk_wt
is
procedure p_wt(mycs out mytype)
is
begin
open mycs for select * from test;
end p_wt;

function f_get(str varchar2)
return varchar2
is
str_temp varchar2(100) := ''good luck!'';
begin
str_temp := str_temp || str;
return str_temp;
end f_get;

end pk_wt;
/
说明:这里建立PACKAGE BODY是具体的说明和使用,将采用什么方式实现。。

 

C#段:


在C#中代码将分为两部分,一部分是使用函数,另外一部分是使用结果集。
定义一个连接,从WEBCONFIG里去取得:
private OracleConnection orcn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["scott"]);
C#调用ORACLE函数:
OracleCommand cmd=new OracleCommand("pk_wt.f_get",orcn);
cmd.CommandType=CommandType.StoredProcedure;
OracleParameter p1=new OracleParameter("str",OracleType.VarChar,10);
p1.Direction=System.Data.ParameterDirection.Input;
p1.Value=this.TextBox1.Text;
OracleParameter p2=new OracleParameter("result",OracleType.VarChar,100);
p2.Direction=System.Data.ParameterDirection.ReturnValue;
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
orcn.Open();
cmd.ExecuteNonQuery();
orcn.Close();
this.Button_function.Text=p2.Value.ToString();
其中RESULT是系统自定义的函数返回变量,特别要注意的是,函数的参数的返回类型要指定,另外就是COMMAND类型也需要指定,另外和一般的存储过程没什么差别。

C#调用ORACLE返回结果集:
OracleCommand cmd=new OracleCommand("pk_wt.p_wt",orcn);
cmd.CommandType=CommandType.StoredProcedure;
OracleParameter p1=new OracleParameter("mycs",OracleType.Cursor);
p1.Direction=System.Data.ParameterDirection.Output;
cmd.Parameters.Add(p1);
OracleDataAdapter da=new OracleDataAdapter(cmd);
DataSet ds=new DataSet();
da.Fill(ds,"test");
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();
这里没什么可说的类。。只是定义的数据类型是游标,类型是OUTPUT,另外没什么了。。

分享到:
评论

相关推荐

    C# 传入自定义列表List 到Oracle存储过程

    本文将详细讲解如何在C#中使用自定义列表(List)作为参数调用Oracle存储过程,以及实现这一功能的关键技术和注意事项。 首先,我们需要了解Oracle数据库中的PL/SQL类型,例如VARCAR2、NUMBER等,它们对应于C#中的...

    C#中调用ORACLE的PACKAGE里方法和存储过程的应用

    C#中调用ORACLE的PACKAGE里方法和存储过程的应用 在实际开发中,C#与ORACLE数据库的集成是一个非常重要的 topic,本文将详细介绍如何在C#中调用ORACLE的PACKAGE里的方法和存储过程。 首先,我们需要在ORACLE数据库...

    ORACLE存储过程简析及C#调用.docx

    Ref Cursor是PL/SQL中的一个重要概念,它允许存储过程返回动态查询的结果。此外,PL/SQL中创建序列的方式是`CREATE SEQUENCE`,不同于T-SQL中的`identity()`。 Package的编写通常包括两部分:规范(Specification)...

    c#调用oracle存储过程[定义].pdf

    总之,C#调用Oracle存储过程涉及到创建存储过程、设置参数模式、在C#中构建OracleCommand对象以及处理输入输出参数。了解这些概念和步骤对于任何进行数据库操作的软件开发者来说都是至关重要的。

    C#调用oracle存储过程最简单的实例[归类].pdf

    在软件开发领域,尤其是涉及到数据库交互时,C# 调用 Oracle 存储过程是一项常见的任务。这个实例提供了一个简单的方法来实现这一操作。首先,我们从 Oracle 数据库的角度出发,了解如何创建一个存储过程。 1. 创建...

    C# Oracle存储过程工具类

    在C#中调用Oracle存储过程,我们需要使用Oracle提供的ODP.NET(Oracle Data Provider for .NET)库,它可以提供全面的数据访问功能,包括执行存储过程。以下是一些关键知识点: 1. **OracleConnection对象**:这是...

    C#访问Oracle存储过程实例源码,C#、VS2010、Oracle、存储过程

    5. **处理结果**:如果存储过程返回结果集,可以使用OracleDataReader遍历数据。如果是输出参数,可以通过OracleParameter的Value属性获取其值。 6. **关闭连接**:执行完操作后,记得关闭数据库连接,以释放资源。...

    C#调用Oracle存储过程的方法

    本文实例讲述了C#调用Oracle存储过程的方法。分享给大家供大家参考。具体实现方法如下: Oracle数据库代码如下: 代码如下:create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,...

    C#使用Oracle.ManagedDataAccess.dll轻松访问oracle数据库

    你可以通过`OracleCommand`的`ExecuteNonQuery`、`ExecuteScalar`和`ExecuteReader`方法来调用这些存储过程。 总的来说,Oracle.ManagedDataAccess.dll为C#开发者提供了一种便捷、高效且跨平台的方式来访问Oracle...

    C# 连接各种数据库返回DataTable的方法

    `sql`是执行的SQL查询,`DataTable`对象将存储查询结果。`Fill`方法用于将数据库中的数据填充到`DataTable`中。 在实际开发中,为确保安全性和性能,应使用参数化查询防止SQL注入,以及适当地关闭和释放数据库连接...

    C#版Oracle数据库通用操作类

    `ConnForOracle` 类主要实现了对 Oracle 数据库的基本操作,包括但不限于连接数据库、执行 SQL 语句以及返回结果集等功能。通过此类可以有效地简化数据库操作代码,并提高开发效率。 #### 二、基本属性与构造函数 ...

    C#调用oci直连Oracle

    要实现C#调用oci.dll,你需要做以下几步: 1. **配置环境**:确保你有Oracle Instant Client,这是一个轻量级的Oracle客户端,包含oci.dll和其他必要的文件。你可以从Oracle官方网站下载对应操作系统的版本,并将其...

    oracle+c# 数据库开发实例

    ### Oracle+C# 数据库开发实例 #### Oracle存储过程创建与测试 ...以上就是使用C#调用Oracle存储过程的一个简单示例。这种方法可以极大地提高数据库操作的安全性和效率,特别是在处理复杂查询和大量数据时尤为明显。

    DotNet操作Oracle存储过程备忘[定义].pdf

    总的来说,使用.NET的`System.Data.OracleClient`命名空间,我们可以方便地在C#应用程序中调用Oracle数据库的存储过程和函数,实现数据的增删改查以及其他复杂业务逻辑。需要注意的是,Oracle已经停止对`System.Data...

    C#版oracle驱动oci

    下面是一个简化的例子,展示了如何在C#中定义并调用Oracle OCI的函数: ```csharp using System; using System.Runtime.InteropServices; public class OracleOci { [DllImport("oci.dll", CharSet = CharSet....

    Oracle中实现Split函数功能

    函数内部使用了一个循环来拆分字符串,每次循环都会将拆分后的结果返回给调用者。 最后,我们可以使用这个函数来拆分字符串。例如,我们可以使用以下 SQL 语句来拆分一个字符串: ``` SELECT * FROM TABLE(f_split...

    c#oracle客户端封装oci驱动

    总之,C#封装Oracle OCI驱动是一项涉及原生库调用和P/Invoke技术的工作,它可以为应用程序提供更底层的数据库访问能力。通过良好的封装,我们可以创建一个易用且高效的C#客户端,方便在各种项目中直接操作Oracle...

    【精华志】超详细Oracle存储过程使用手册

    - 可以定义一个函数类型的存储过程,通过`RETURN`语句返回一个值。 - 也可以使用OUT参数来传递结果。 6. **异常处理** - PL/SQL中的`EXCEPTION`部分用于捕获和处理运行时错误。 - 自定义异常可以提高程序的健壮...

    Orcale存储过程,游标,函数,简单易懂

    - 存储过程类似于 Java 中的方法或 C# 中的函数,可以接受输入参数、返回输出参数以及返回状态值。 2. **优点**: - **性能优化**:存储过程是预编译的,因此每次执行时不需要重新编译,从而提高了执行速度。 - ...

Global site tag (gtag.js) - Google Analytics