Sql 如何在具有OUT值的包中调用过程?
我在一个包中有一个sql过程,它有一个OUT参数。包装体如下所示Sql 如何在具有OUT值的包中调用过程?,sql,stored-procedures,oracle-sqldeveloper,procedures,Sql,Stored Procedures,Oracle Sqldeveloper,Procedures,我在一个包中有一个sql过程,它有一个OUT参数。包装体如下所示 create or replace PACKAGE BODY TEST_PACKAGE AS -- body Procedure TEST_PROCEDURE ( data_1 IN VARCHAR2 , data_2 IN VARCHAR2 , data_3 IN DATE ,
create or replace
PACKAGE BODY TEST_PACKAGE AS -- body
Procedure TEST_PROCEDURE (
data_1 IN VARCHAR2
, data_2 IN VARCHAR2
, data_3 IN DATE
, out_data OUT VARCHAR2 )
IS
BEGIN
INSERT INTO TEST_TABLE(
COLUMN_1,
COLUMN_2,
COLUMN_3) VALUES(
data_1,
data_2,
data_3
);
out_data:='SUCCESS';
End TEST_PROCEDURE;
END TEST_PACKAGE;
我试图用下面的SQL命令调用这个过程
DECLARE
sample_out_data VARCHAR2(100);
Begin
TEST_PACKAGE.TEST_PROCEDURE ('test_data_1','test_data_2',2012-02-23,sample_out_data);
END;
但它给了我错误。有谁能告诉我怎么调用这个程序吗
错误如下所示
Error starting at line 13 in command:
Declare
sample_out_data VARCHAR2(100);
Begin
TEST_PACKAGE.TEST_PROCEDURE ('test_1','test_2',2012-02-23,sample_out_data);
End;
Error report:
ORA-06550: line 4, column 1:
PLS-00306: wrong number or types of arguments in call to 'TEST_PROCEDURE'
ORA-06550: line 4, column 1:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
输出
我已经添加了错误。请检查您应该指定变量的大小<代码>样本输出数据VARCHAR2(100)代码>已添加。现在我又犯了一个错误。请检查您的第三个输入参数是日期。但是您正在传递
2012-02-23
,这是一个字符串。谢谢您的回复。我更改了日期参数。现在我不再犯错误了。请查收
create or replace
Procedure TEST_PROCEDURE (
id IN number
, price IN long
, date_req IN timestamp
, out_status OUT varchar2
)
IS
BEGIN
INSERT INTO orders(
id,
price,
date_req) VALUES(
id,
price,
date_req );
out_status:='SUCESS';
End TEST_PROCEDURE;
DECLARE
SUCCESS VARCHAR2(100);
begin
TEST_PROCEDURE(10,1456,'11-NOV-13 12.42.53.658439 PM',SUCCESS);
DBMS_OUTPUT.PUT_LINE('THE STATUS IS'||' '||SUCCESS);
end;