我有一个包裹:
CREATE OR REPLACE PACKAGE BODY pack1
AS
procedure proc1(column_1 in table1.column1%TYPE, column_2 in table1.column2%TYPE, results out varchar)
//code....
......
.....
....//
END pack1;
/
我想知道如何执行此过程。我知道这是一个愚蠢的问题,但是对此我感到非常困惑。
我尝试过:exec pack1.proc1(123,'abc')
但这是行不通的。请告诉我如何执行此操作
答案 0 :(得分:2)
您可以在SQL * Plus中使用绑定变量来获取结果并使用PRINT
VARIABLE v_result VARCHAR2
EXECUTE pack1.proc1(123, 'abc', :v_result); --note the colon.
PRINT v_result --display the results.
如果您是从PL / SQL块或其他过程中调用它,则可以只使用DBMS_OUTPUT.PUT_LINE()
SET SERVEROUTPUT ON
DECLARE
l_results VARCHAR2(20);
BEGIN
pack1.proc1(123, 'abc', l_results);
DBMS_OUTPUT.PUT_LINE(l_results);
END;
/
注意:使用VARCHAR2
代替VARCHAR
作为过程参数results