如何从包中调用过程?

时间:2016-01-22 15:29:28

标签: oracle stored-procedures plsql

我想从包裹中调用一个程序:

exec TEST_Procedure.TEST_Procedure_PR(Parameter1, Parameter2, Parameter3, Parameter4, Parameter5);

参数全部被引用,我有5个IN参数和1个OUT(参考光标)。

然而,当我直接调用包中的过程时,我得到了我的值。 如果我使用SQL从cmd行调用该过程,则会出现错误:

ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'TEST_Procedure_PR'

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在你的包中只需编写过程调用的代码,而不需要EXEC语句,这只在SQL * Plus中是必需的。例如,

CREATE PACKAGE BODY YOUR_PACKAGE AS

PROCEDURE SOME_PROCEDURE IS
BEGIN
   TEST_Procedure.TEST_Procedure_PR(Parameter1,
                                    Parameter2,
                                    Parameter3,
                                    Parameter4,
                                    Parameter5);
END SOME_PROCEDURE;

END YOUR_PACKAGE;

祝你好运。