首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

小弟我的参数如何没传进来? 这么小的程序,如何了。

2012-02-06 
我的参数怎么没传进来??这么小的程序,怎么了。。。。在SQL*plus中写的如下DECLAREWREN4255VARCHAR(20)WREN425

我的参数怎么没传进来?? 这么小的程序,怎么了。。。。
在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也可

热点排行