【问题标题】:executing Oracle stored procedures using ADO (c#)使用 ADO (c#) 执行 Oracle 存储过程
【发布时间】:2010-06-25 22:35:38
【问题描述】:

我正在尝试使用以下代码从 C# 应用程序调用 Oracle 存储过程

Connection conn = new Connection();
Recordset rs = new Recordset();
conn.Open("Provider=MSDAORA;User Id=username;Password=password;Data Source=DB;", null, null, 0); ;
rs.Open("sproc 'abc', 'xyz'", conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, -1);

其中 abc 和 xyz 是输入参数..

但是,当我尝试运行它时,我得到“无效的 SQL 语句异常”..

还有其他方法可以执行 oracle 存储过程吗?我可以按照上述相同的方式执行 MSSQL 存储过程或普通 Oracle 查询。

我什至尝试过使用 createparameter,但这也无济于事

谢谢, 山姆

【问题讨论】:

    标签: c# oracle stored-procedures ado.net


    【解决方案1】:

    获取 Oracle ODP.NET 工具:http://www.oracle.com/technology/software/tech/windows/odpnet/index.html

    它们是我用来从我的 ASP.NET 应用程序与我们的 Oracle 数据库交互的工具

    Check here 以 C# 调用 Oracle 存储过程的示例。

    基本上,用包:

    // Create oracle command object for the stored procedure
    OracleCommand cmd = new OracleCommand("HR_DATA.GETCURSORS", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    
    // Enter a parameter for the procedure
    OracleParameter dep_id = new OracleParameter();
    dep_id.OracleDbType = OracleDbType.Decimal;
    dep_id.Direction = ParameterDirection.Input;
    dep_id.Value = 60;
    cmd.Parameters.Add(dep_id);
    
    // Add more parameters ... 
    
    // Execute the stored procedure
    

    Here's a link to the API documentation

    【讨论】:

    • +1。 Microsoft 已弃用他们自己的 Oracle 驱动程序,并建议使用 Oracle 的 ODP.NET。
    【解决方案2】:

    没关系.. 显然我在输入参数周围缺少括号...

    谢谢, 山姆

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 2014-03-13
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      相关资源
      最近更新 更多