`
jiasongmao
  • 浏览: 670775 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

c#使用odp调用oracle带返回值的存储过程

    博客分类:
  • .NET
阅读更多

返回值为varchar2类型的示例:

public string QueryForLastestIndicatorValue(string personId, string crowdGroup)
        {
            OracleParameter[] parms = new OracleParameter[]
                            {
                                new OracleParameter(":个人id_In", OracleDbType.Varchar2),
                                new OracleParameter(":人群码集合_In", OracleDbType.Varchar2),
                                new OracleParameter(":结果_Out", OracleDbType.Varchar2,ParameterDirection.Output){Size=255}
                            };

            parms[0].Value = personId;
            parms[1].Value = crowdGroup;
            int k = OracleHelper.ExecuteNonQuery(OracleHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "P_居民关注指标_QUERY2", parms);
            
            object value = parms[2].Value;
            return (value == null || value.ToString().Equals("null")) ? string.Empty : value.ToString();
        }

 

 

返回值为cursor(dataset)的示例

DataSet ds = new DataSet();

            OracleParameter[] parms = new OracleParameter[]
                            {
                                new OracleParameter(":个人id_In", OracleDbType.Varchar2),
                                new OracleParameter(":指标名称_In", OracleDbType.Varchar2),
                                new OracleParameter(":指标名称_In", OracleDbType.RefCursor,ParameterDirection.Output),
                            };

            parms[0].Value = personId;
            parms[1].Value = attentionTarget;
            OracleConnection connection = new OracleConnection(OracleHelper.ConnectionStringLocalTransaction);
            OracleCommand cmd = new OracleCommand("p_居民关注指标明细_Query", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            OracleDataAdapter adapter = new OracleDataAdapter(cmd);
            connection.Open();
            if (parms != null && parms.Length > 0)
                adapter.SelectCommand.Parameters.AddRange(parms.ToArray());

            OracleDataReader read = cmd.ExecuteReader(CommandBehavior.SchemaOnly);//ODP驱动时如果查询的字段有参数则会报ORA-01036: 非法的变量名/编号错误,先执行以下ExecuteReader可避免
            read.Close();
            read.Dispose();
            connection.Close();
            adapter.Fill(ds);

            return ds;
 

 

分享到:
评论

相关推荐

    C# ODP.NET 调用Oracle函数返回值时报错的一个解决方案

    在C#中使用ODP.NET(Oracle Data Provider for .NET)调用Oracle数据库中的函数时,有时会遇到返回值获取异常的问题。本文将详细解析这个问题的原因以及提供一种有效的解决方案。 首先,我们来看一下Oracle函数`F_...

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

    在C#中调用Oracle存储过程,可以使用Oracle.DataAccess.Client库(ODP.NET),通过OracleCommand对象创建一个存储过程调用,并设置CommandType为StoredProcedure。例如,调用`wyd_print`存储过程: ```csharp using...

    C# Oracle存储过程工具类

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

    C#调用oci直连Oracle

    在.NET平台上,C#语言可以直接与Oracle数据库进行交互,无需安装完整的Oracle客户端或者依赖于Oracle Data Provider for .NET (ODP.NET)。这种技术主要基于Oracle的OCI(Oracle Call Interface)库,通过引用oci.dll...

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

    本实例将探讨如何使用C#通过VS2010访问Oracle存储过程。 首先,你需要在VS2010中创建一个新的C#项目,选择相应的.NET Framework版本,如4.0。然后,确保你的系统已经安装了Oracle客户端或者ODP.NET(Oracle Data ...

    C# oracle存储过程的webservice

    本文将深入探讨如何使用C#来调用Oracle存储过程,并将其结果封装成XML,以构建一个Web服务,用于医院系统的实际应用。 首先,让我们了解C#如何连接到Oracle数据库。这通常通过ODP.NET(Oracle Data Provider for ...

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

    在C#中调用Oracle存储过程是常见的数据交互操作,特别是在需要执行复杂数据库逻辑时。以下将详细介绍如何在C#中通过ADO.NET库来调用Oracle存储过程。 首先,确保已经安装了Oracle的客户端驱动,例如Oracle Data ...

    C#对数据库oracle连接与操作

    6. **存储过程的调用**: 通过设置`CommandType`为`StoredProcedure`,并提供存储过程的名称,可以调用Oracle数据库中的存储过程。 ```csharp cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = ...

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

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

    Oracle连接C#

    总结来说,"Oracle连接C#"涉及的知识点包括:使用ODP.NET进行数据库连接、数据库连接字符串的构造、执行SQL查询、调用存储过程、异常处理、性能优化和安全实践。在实际项目中,这些知识点构成了高效、安全的C#与...

    Oracle.DataAccess

    6. **存储过程和函数调用**: 开发者可以使用Oracle.DataAccess来调用Oracle数据库中的存储过程和函数,这包括输入参数、输出参数和返回值的处理。 7. **高级特性支持**: ODP.NET 支持Oracle的高级特性,如游标、PL/...

    ODP for .NET Core

    7. **存储过程与函数**:介绍调用Oracle数据库中的存储过程和函数的方法,包括输入、输出和返回值参数。 8. **异常处理与错误处理**:提供关于Oracle异常类的使用指导,以及如何捕获和处理Oracle数据库操作中可能...

    ConnOracleWays_oracle_

    在IT行业中,数据库管理系统是数据存储和管理的核心工具,而Oracle是全球领先的数据库解决方案之一,尤其在企业级应用中广泛使用。本示例主要关注如何使用C#编程语言连接到Oracle数据库,这在开发.NET应用时是常见的...

Global site tag (gtag.js) - Google Analytics