ORA-06550 исключение при вызове хранимой процедуры оракула из C # - PullRequest
2 голосов
/ 13 июня 2011

Я пытаюсь вызвать хранимую процедуру оракула из моего приложения C #, и я получаю следующую ошибку:

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();

В чем может быть проблема?

Ответы [ 2 ]

5 голосов
/ 13 июня 2011

не должно

param.ParameterName = "ip";

быть

param.ParameterName = "user_ip";
0 голосов
/ 13 июня 2011

Вы передаете неправильное имя параметра.Это должно быть

param.ParameterName = "user_ip";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...