1

我有一个带有以下标头的存储过程:

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 的正确语法是什么?

4

2 回答 2

2

您是从另一个 SP 调用存储过程吗?

我认为语法是(如果我没记错的话):

declare
     c integer;
begin

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

希望这可以帮助。

于 2008-10-05T17:10:48.200 回答
0

您可能可以从 DUAL 中选择 orm_helper.orm_helper.SAVESHIPMENT (9999, 31896, NULL, '')。

于 2008-10-06T19:40:52.030 回答