Выполнить хранимый процесс Oracle - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть хранящийся оракул с подписью: (часть пакета: Подрядчик)

PROCEDURE usp_sel_contractors(g_contractors OUT sel_contractor);

Я пытаюсь выполнить это как:

execute Contractor.usp_sel_contractors;

Я привык к MSSqlServer. Кажется, это должно быть прямо вперед.

Я получаю сообщение об ошибке:

Invalid Sql Statement

Спасибо!

Ответы [ 2 ]

3 голосов
/ 01 февраля 2011

Предполагая, что sel_contractor является типом курсора ссылки, вы можете сделать это в SQL Plus:

var rc refcursor

exec usp_sel_contractors(:rc)

print rc
1 голос
/ 01 февраля 2011

Я не уверен, почему вы получите это конкретное сообщение об ошибке, но очевидная проблема заключается в том, что в процедуре есть параметр, а вы его не передаете. Поскольку это параметр OUT, вам нужно будет передать переменную соответствующего типа, которая будет заполнена процедурой.

Например:

DECLARE
  my_contractors  sel_contractor;
BEGIN
  usp_sel_contractors( my_contractors );

  // Do something with the contents of my_contractors here
END;
/
...