ORA-06502:PLSQL:数值或值错误:字符串缓冲区太小

CREATE OR REPLACE FUNCTION "FN_GETBIGTEXT" ( Tabflag in VARCHAR2)
return varchar2
as
type rc is ref cursor;
str varchar2(4000);
sep varchar2(2);
val varchar2(4000);
cur rc;
begin
open cur for
'SELECT tbi_memo FROM hi_tab_bigtext
WHERE tbi_flag='''||Tabflag||'''';
loop
fetch cur into val;
Exit When Cur%Notfound;
str := str || val;

end loop;
Close Cur;
--Dbms_Output.Put_Line(str);
return str;

end fn_getbigtext;
这是我的函数,执行这个函数时报下面的错误,怎么修改啊?网上查了好多都不行

第1个回答  2014-06-27

目测,这个不用自定义函数吧,oracle中有现成的

select  wm_concat(tbi_memo) FROM hi_tab_bigtext WHERE tbi_flag= 参数

这种转完是逗号分隔的,你再用replace把逗号去掉就可以啊

本回答被提问者采纳