PL / SQL: как выполнить SP, который преобразует DML и имеет возвращаемое значение? - PullRequest
1 голос
/ 05 октября 2008

У меня есть хранимая процедура со следующим заголовком:

FUNCTION SaveShipment (p_user_id IN INTEGER, p_transaction_id IN INTEGER, p_vehicle_code IN VARCHAR2 DEFAULT NULL, p_seals IN VARCHAR2 DEFAULT NULL) RETURN INTEGER;

И у меня возникают проблемы при запуске из редактора TOAD. Я не могу запустить его как часть оператора select from dual, потому что он преформирует DML, но если я попробую следующий синтаксис, который я рекомендовал на каком-то форуме:

var c integer;
exec :c := orm_helper.orm_helper.SAVESHIPMENT (9999, 31896, NULL, '');
print c;

Я получаю:

ORA-01008: not all variables bound
Details:
BEGIN :c := orm_helper.orm_helper.saveshipment (9999, 31896, null, ''); END;
Error at line 2
ORA-01008: not all variables bound

Какой правильный синтаксис для запуска этого sp вручную?

Ответы [ 2 ]

2 голосов
/ 05 октября 2008

Вы вызываете хранимую процедуру от другого SP?

Я думаю, что синтаксис (если я правильно помню):

declare
     c integer;
begin

c:=storedProc(...parameters...);

Надеюсь, это поможет.

0 голосов
/ 06 октября 2008

Вы могли бы, вероятно, ВЫБРАТЬ orm_helper.orm_helper.SAVESHIPMENT (9999, 31896, NULL, '') ИЗ ДВОЙНОГО.

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