在oracle c#中运行存储过程时出现ORA-06550错误

本文关键字:ORA-06550 错误 存储过程 oracle 运行 | 更新日期: 2023-09-27 18:13:55

 using (var command = new OracleCommand(sqlText, oraConnection) { CommandType = CommandType.StoredProcedure })
                {
                    command.BindByName = true;
                    var parameters = command.Parameters;
                    parameters.Clear();
                    parameters.Add("p_date", OracleDbType.Date, ParameterDirection.Input).Value = DateTime.Now;
                    command.ExecuteNonQuery();
                }

这是我在VS15中的代码。我正在尝试执行一个存储过程,并将我唯一的参数作为日期传递。

create or replace procedure cwi_pat_deductions_export
(
       :p_date date
)
is
  v_count number;

这是存储过程的开始。我在第1行col 7处得到Oracle错误:ORA-06550(因此在单词"CREATE"之后)。我不是一个sql开发贸易,所以我正在努力看看错误在哪里。我不觉得它是在我的端(c#端),但它很可能是(我们的sql开发人员坚持认为,它必须是一个问题在我的端,作为存储过程编译和运行良好的PlSql开发人员)。

不允许用Create或replace来启动存储进程吗?

在oracle c#中运行存储过程时出现ORA-06550错误

当您想调用该过程时,您没有传递该过程的完整CREATE OR REPLACE PROCEDURE ...文本。存储过程的意义在于它已经存储在数据库中。

如果要调用存储过程,则sqlText参数应该只是存储过程名称cwi_pat_deductions_export。如果这不起作用,并且您得到一个invalid identifier错误,请尝试在名称前面加上存储过程的所有者,例如some_schema.cwi_pat_deductions_export