2010-06-24 3 views
0

Я использую DB2 9.7 для Linux. Хранимая процедура реализована в PL/SQL (язык программирования Oracle), поэтому набор записей является выходным параметром (SYS_REFCURSOR).Как вызвать хранимую процедуру DB2 из C#?

Я не знаю, как объявить этот параметр в моем коде на C#.

DB2Parameter parameter = ((DB2Command)command).CreateParameter(); 

parameter.ParameterName = "cv_1"; 
parameter.Direction = ParameterDirection.Output; 
parameter.DbType = ... 

ответ

1

Нет нумерации DB2Type для наборов результатов. В их API, как вы это делаете, нужно выполнить команду с помощью метода DB2Command.ExecuteReader. Возможно, вам придется изменить PL/SQL на функцию, которая возвращает sys_refcursor, а не процедуру, которая имеет параметр sys_refcursor.

+0

Я пробовал это, но я не могу назвать функцию из C#. У меня есть эта ошибка: DB2: ERROR [42884] [IBM] [DB2/LINUXX8664] SQL0440N Не найдено авторизационной процедуры с именем «FUN_TEST» типа «ПРОЦЕДУРА», имеющей совместимые аргументы. SQLSTATE = 42884 – Jorge

+0

Функция возвращает значение и объявляется с ключевым словом «FUNCTION» вместо «ПРОЦЕДУРА». Проверьте документы PL/SQL, которые вам удобны для получения дополнительной информации. –

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