我正在尝试从我的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();
可能是什么问题?
答案 0 :(得分:5)
不应该
param.ParameterName = "ip";
是
param.ParameterName = "user_ip";
答案 1 :(得分:0)
你传递错误的参数名称。它应该是
param.ParameterName = "user_ip";