1、
declare
mymaxid char; --问题出在这里
begin
mytemp(2,'100',mymaxid);
end;定义某个变量为char型,且不指定宽度时,它的宽度默认为1
所以在输出时就会出错
把这里改为varchar2(15)2、在函数和存储过程的形参中,不能指定数据的宽度~
declare
mymaxid char; --问题出在这里
begin
mytemp(2,'100',mymaxid);
end;定义某个变量为char型,且不指定宽度时,它的宽度默认为1
所以在输出时就会出错
把这里改为varchar2(15)2、在函数和存储过程的形参中,不能指定数据的宽度~
( mylevel in number,
myid in varchar2,
maxid out varchar2
)
as
begin
select max(tempid) into maxid from temp where tempid like myid||'%' and templevel=mylevel;
end mytemp;
建立完改存储过程后,我在sql*plus中调用该存储过程:
declare
mymaxid varchar2(15);
begin
mytemp(2,'100',mymaxid);
end;
mymaxid char;不是吧,范围也不给就定义,呵呵