【发布时间】:2016-10-19 19:15:01
【问题描述】:
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 列第 7 行收到 Oracle 错误:ORA-06550(就在“CREATE”一词之后)。我不是一个交易的 sql 开发人员,所以我很难看出错误在哪里。我不觉得它在我的一端(c#端)但它很可能是(我们的sql开发人员坚持认为它一定是我的问题,因为存储的proc在PlSql Developer中编译并运行良好)。
您不允许使用创建或替换来启动存储过程吗?我认为这是标准的。
【问题讨论】:
-
sqlText的值是多少?您是在尝试调用存储过程还是创建它? -
sqltex 是存储过程
-
也使用 as 代替 is 对建议它的人不起作用(但我很欣赏尝试)
-
sqltext是存储过程名称还是存储过程的代码行数?
-
如果您尝试执行存储过程 sqlText 应该只是存储过程名称 (cwi_pat_deductions_export) 而不是整个存储过程定义。
标签: c# sql oracle stored-procedures plsql