日期:2014-05-17  浏览次数:21167 次

如何命令窗口调用oracle存储过程
我写了个获得编号的存储过程,代码如下
create   or   replace   procedure   laststr  
(
sign_str   in   varchar2(20);
outval   out   varchar2(20);
)  
as
new_count   number;
begin
select   count(*)   into   new_count   from   student;
if   to_char(new_count)=0   then
outval:=   sign_str|| '001 ';
else
select   seq_student.nextval   into   outval   from   daul;
while   length(outval) <3   loop
outval:= '0 '||outval;
end   loop;
outval:=sign_str||outval;
end   if;
end   laststr;

我想在命令行调用它,就这么写了下,过程如下
SQL>  
SQL>   set   serveroutput   on
SQL>   declare
    2         v_num1   varchar2(20);
    3     begin
    4         laststr( 'LL_ ',v_num1);
    5         dbms_output.put_line( 'v_num1= '||v_num1);
    6     end;
    7     /

declare
    v_num1   varchar2(20);
begin
    laststr( 'LL_ ',v_num1);
    dbms_output.put_line( 'v_num1= '||v_num1);
end;

ORA-06550:   第   4   行,   第   3   列:  
PLS-00905:   对象   XD.LASTSTR   无效
ORA-06550:   第   4   行,   第   3   列:  
PL/SQL:   Statement   ignored

这是为什么呢。。我过程明明有的。。大家说说怎么回事,或者教我下如何调用。。急呀


------解决方案--------------------
set serveroutput on
execute laststr( 'LL_ ',v_num1);

试试看,是什么结果?