如何解决从C#调用oracle存储过程时出现ORA-06550异常
| 我正在尝试从C#应用程序调用oracle存储过程,但出现以下错误: ORA-06550:第1行,第7列: PLS-00306:错误的数量或类型 调用\'DELETE_SEARCH \'中的参数 ORA-06550:第1行,第7列: PL / sql:语句被忽略 过程声明为:PROCEDURE delete_search (user_ip IN VARCHAR2)
假定调用它的C#代码是:
OracleCommand cmd;
OracleParameter param;
for (int i = 0; i < data.Tables[0].Rows.Count; i++)
{
if (decimal.Parse(data.Tables[0].Rows[i][1].ToString()) < numericupdown1.Value)
{
cmd = new OracleCommand(\"delete_search\",Form1.conn());
cmd.Parameters.Clear();
cmd.CommandType = CommandType.StoredProcedure;
param = new OracleParameter();
param.ParameterName = \"ip\";
param.Value = data.Tables[0].Rows[i][0].ToString();
param.Direction = ParameterDirection.Input;
param.OracleType = OracleType.VarChar;
cmd.Parameters.Add(param);
Form1.adapter().SelectCommand = cmd;
Form1.adapter().SelectCommand.ExecuteNonQuery();
}
}
当然,该行中会抛出异常:
Form1.adapter().SelectCommand.ExecuteNonQuery();
可能是什么问题?
解决方法
不应该
param.ParameterName = \"ip\";
是
param.ParameterName = \"user_ip\";
, 您传递了错误的参数名称。它应该是
param.ParameterName = \"user_ip\";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。