读书人

小弟我的参数如何没传进来? 这么小的

发布时间: 2012-02-06 15:52:45 作者: rapoo

我的参数怎么没传进来?? 这么小的程序,怎么了。。。。
在SQL*plus中写的如下DECLARE
WREN4255 VARCHAR(20);
WREN42554255 VARCHAR(30);

BEGIN
WREN4255 := '0';
WREN42554255 := 'JUST A TEST';
XXAE03103.main(WREN42554255,WREN4255);


END;
/

数据库中定义的包XXAE03103如下
CREATE OR REPLACE PACKAGE BODY APPS.XXAE03103
IS

PROCEDURE main(errbuf OUT VARCHAR2
,retcode OUT VARCHAR2)

IS

BEGIN
DBMS_OUTPUT.PUT_LINE(retcode||'1111');
END main;

END XXAE03103;
/

为什么retcode的值为空呢??

[解决办法]
参数类型错误。
PROCEDURE main中定义的是out类型的参数,又不是in out类型的参数。


引用楼主 wren4255 的帖子:
在SQL*plus中写的如下DECLARE
WREN4255 VARCHAR(20);
WREN42554255 VARCHAR(30);

BEGIN
WREN4255 := '0';
WREN42554255 := 'JUST A TEST';
XXAE03103.main(WREN42554255,WREN4255);


END;
/

数据库中定义的包XXAE03103如下
CREATE OR REPLACE PACKAGE BODY APPS.XXAE03103
IS

PROCEDURE main(errbuf OUT VARCHAR2
,retcode OUT VARC…

[解决办法]
楼上正解
[解决办法]
SQL code
declare errbuf varchar2(20) default '0' ;retcode varchar2(30) default 'JUST A TEST' ;begindbms_output.put_line(retcode||'1111'); end;
[解决办法]
SQL code
SQL> create or replace package XXAE03103  2  is  3   procedure main(errbuf in VARCHAR2 ,retcode OUT VARCHAR2);  4  end XXAE03103;  5  /Package createdSQL> CREATE OR REPLACE PACKAGE BODY XXAE03103  2  IS  3    PROCEDURE main(errbuf in VARCHAR2 ,retcode OUT VARCHAR2)  4    IS  5    BEGIN  6      retcode := errbuf||'testing.....';  7    END main;  8  END XXAE03103;  9  /Package body createdSQL> DECLARE  2      WREN4255    VARCHAR(20);  3      WREN42554255 VARCHAR(30);  4    5  BEGIN  6      WREN42554255 := '00000';  7      XXAE03103.main(WREN42554255,WREN4255);  8      dbms_output.put_line(WREN4255);  9  END; 10  /00000testing.....PL/SQL procedure successfully completed
[解决办法]
楼猪是输入的参数
在proc中 in 也可,in out也可

读书人网 >oracle

热点推荐