create or replace function FUN_FORMATLIST(p_List varchar2,
p_Delimeter varchar2)
return varchar2 is
v_ReturnList varchar2(4000);
v_DblDelimeter varchar2(10);
v_DeliLen integer;
begin
v_DblDelimeter:=p_Delimeter||p_Delimeter;
v_DeliLen:=length(p_Delimeter);
v_ReturnList:=p_List;
loop
if instr(v_ReturnList,v_DblDelimeter,1)>0 then
v_ReturnList:=replace(v_ReturnList,v_DblDelimeter,p_Delimeter);
else
exit;
end if;
end loop;
loop
if substr(v_ReturnList,1,v_DeliLen)=p_Delimeter then
v_ReturnList:=substr(v_ReturnList,2);
else
exit;
end if;
end loop;
loop
if substr(v_ReturnList,length(v_ReturnList)-v_DeliLen+1,v_DeliLen)=p_Delimeter then
v_ReturnList:=substr(v_ReturnList,1,length(v_ReturnList)-v_DeliLen);
else
exit;
end if;
end loop;
return(v_ReturnList);
end FUN_FORMATLIST;
p_Delimeter varchar2)
return varchar2 is
v_ReturnList varchar2(4000);
v_DblDelimeter varchar2(10);
v_DeliLen integer;
begin
v_DblDelimeter:=p_Delimeter||p_Delimeter;
v_DeliLen:=length(p_Delimeter);
v_ReturnList:=p_List;
loop
if instr(v_ReturnList,v_DblDelimeter,1)>0 then
v_ReturnList:=replace(v_ReturnList,v_DblDelimeter,p_Delimeter);
else
exit;
end if;
end loop;
loop
if substr(v_ReturnList,1,v_DeliLen)=p_Delimeter then
v_ReturnList:=substr(v_ReturnList,2);
else
exit;
end if;
end loop;
loop
if substr(v_ReturnList,length(v_ReturnList)-v_DeliLen+1,v_DeliLen)=p_Delimeter then
v_ReturnList:=substr(v_ReturnList,1,length(v_ReturnList)-v_DeliLen);
else
exit;
end if;
end loop;
return(v_ReturnList);
end FUN_FORMATLIST;