2012-06-18 2 views
0

Я продолжаю получать эту ошибку хранимой процедуры (неправильное число или типы аргументов) всякий раз, когда я пытаюсь выполнить ее с C#.Неверное число или типы при вызове sproc

вот определение переменных для sproc:

requestNumber varchar2, 
requestXML clob, 
userID varchar2, 
activityID integer, 
origin_zip varchar2, 
destination_zip varchar2, 
pur_date varchar2 

и вот определение оракула parameteres внутри кода C#:

OracleParameter _requestNumber = new OracleParameter("requestNumber", OracleDbType.Varchar2) { Direction = ParameterDirection.Input, Value = requestNumber }; 

OracleParameter _requestXML = new OracleParameter("requestXML", OracleDbType.Clob) { Direction = ParameterDirection.Input, Value = xml }; 

OracleParameter _userID = new OracleParameter("userID", OracleDbType.Varchar2) { Direction = ParameterDirection.Input, Value = input.UserID }; 

OracleParameter _activityID = new OracleParameter("activityID", OracleDbType.Int32) { Direction = ParameterDirection.Input, Value = Convert.ToInt32(activityID) }; 

OracleParameter _sOriginZip = new OracleParameter("origin_zip", OracleDbType.Varchar2) { Direction = ParameterDirection.Input, Value = _originZip }; 

OracleParameter _sDestinationZip = new OracleParameter("destination_zip", OracleDbType.Varchar2) { Direction = ParameterDirection.Input, Value = _destinationZIP }; 

OracleParameter _sPurDate = new OracleParameter("pur_date", OracleDbType.Varchar2) { Direction = ParameterDirection.Input, Value = _purDate }; 

       command.Parameters.Add(_requestNumber); 
       command.Parameters.Add(_requestXML); 
       command.Parameters.Add(_userID); 
       command.Parameters.Add(_activityID); 
       command.Parameters.Add(_sOriginZip); 
       command.Parameters.Add(_sDestinationZip); 
       command.Parameters.Add(_sPurDate); 

Что может быть причиной, что исключение?

+0

Вы можете включить фактическое призвание процедуры тоже (например, строительство и настройки на объект команды), если ошибка там ... – Chris

+0

Почему бы не сделать еще одну отладку, чтобы отточить проблему? Попробуйте временно установить каждый сохраненный параметр proc на «default null» и постоянно менять свой C#, чтобы каждый раз передавать только один параметр. Когда он идет, это парам с проблемой. – PeteH

ответ

0

Попробуйте четкие параметры команды, используя следующий код перед добавлением параметров,

command.Parameters.Clear(); 

Также проверьте вы настройку, command.Type в StoredProcedure

Смежные вопросы