【问题标题】:Running Oracle Stored Procedure from C# Error从 C# 错误运行 Oracle 存储过程
【发布时间】:2017-02-03 22:11:12
【问题描述】:

我是甲骨文的新手。我创建了一个存储过程来获取表数据。

create or replace
procedure GETLATESTNEWS(cv_results in out sys_refcursor)
as
begin
open cv_results for
select news from tbl_newsdetails;
EXCEPTION
 WHEN OTHERS THEN
  ROLLBACK;
  RAISE_APPLICATION_ERROR(-99999,'Not Inserted due to :'||SQLERRM);  
end;

程序编译成功。但在我的 .net 代码中,我遇到了错误

ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GETLATESTNEWS'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

我的 .net 代码是

con.ConnectionString = constring;
con.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = con;
cmd.CommandText = "GETLATESTNEWS";
cmd.CommandType = CommandType.StoredProcedure;
rdr = cmd.ExecuteReader();

可能是什么问题?我可以使用插入存储过程插入。但是选择不起作用。

【问题讨论】:

  • 您的存储过程需要一个参数(属于 sys_refcursor),但您没有传递任何东西。请查看this article
  • 好的..会阅读并通知您。
  • 请。请记住,该链接只是为了向您展示您的问题所在。您应该进一步调查,因为 Microsoft Oracle .NET 提供程序现在已弃用,您应该使用 Oracle 提供的最新 Oracle NET provider
  • 谢谢史蒂夫。从我的角度来看,这是一个错误。事实上,我非常喜欢使用 sqlserver。所以突然搬家导致了这个问题。
  • 现在完美运行。非常感谢史蒂夫.. :)

标签: c# oracle stored-procedures


【解决方案1】:

尝试添加:

cmd.Parameters.Add("cv_results", OracleDbType.RefCursor).Direction = ParameterDirection.Output;

【讨论】:

    【解决方案2】:

    我用过这个,它对我有用

    OracleCommand oraCommand = new OracleCommand();
    oraCommand.Connection = oraConnection;
    oraCommand.CommandType = CommandType.StoredProcedure;
    oraCommand.CommandText = "procedurename";
    OracleParameter oraParameter = new OracleParameter(":result", OracleDbType.RefCursor, ParameterDirection.ReturnValue);
    oraCommand.Parameters.Add(oraParameter);
    oraCommand.ExecuteNonQuery();
    
    OracleDataAdapter oraDataAdapter = new OracleDataAdapter(oraCommand);
    Oracle.DataAccess.Types.OracleRefCursor refCursor = (Oracle.DataAccess.Types.OracleRefCursor)oraParameter.Value;
    OracleDataReader reader = refCursor.GetDataReader();
    

    但是如果你将存储过程作为 ref_cursor 返回。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多