因为需要用到存储过程,自己写了一个,但因为是新手,查询的字符长度超过了4000,出现了ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小,这个错误,代码如下,麻烦高手指点一下如何修改这个代码!
CREATE OR REPLACE FUNCTION Wait_time_order( str_in in varchar2 ) RETURN varchar2
is
str_list varchar2(4000) default null;
str varchar2(20) default null;
begin
for x in ( select w.Order from Wait_time W where w.Re = str_in order by w.Order ) loop
str_list := str_list || str || to_char(x.Order);
str := chr(47)||chr(47);
end loop;
return str_list ;
END Wait_time_order;
字符串缓冲区太小PL/SQL存储函数
CREATE OR REPLACE FUNCTION Wait_time_order( str_in in varchar2 ) RETURN varchar2
is
str_list varchar2(4000) default null;
str varchar2(20) default null;
begin
for x in ( select w.Order from Wait_time W where w.Re = str_in order by w.Order ) loop
str_list := str_list || str || to_char(x.Order);
str := chr(47)||chr(47);
end loop;
return str_list ;
END Wait_time_order;
字符串缓冲区太小PL/SQL存储函数
还有一个办法是返回数组类型,或者直接用cursor返回。