我写了个获得编号的存储过程,代码如下
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这是为什么呢。。我过程明明有的。。大家说说怎么回事,或者教我下如何调用。。急呀
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这是为什么呢。。我过程明明有的。。大家说说怎么回事,或者教我下如何调用。。急呀
execute laststr('LL_',v_num1);试试看,是什么结果?