今天在创建视图的时候,碰到一个问题,问题如下:
将字符格式为“XXX,YYY”分割出来,并且分割后作为两个字段放入视图中。
考虑使用字符分割函数,但是查找资料Oracle没有字符分割的函数(我对Oracle不熟悉)。
最后决定自己写个函数处理,函数的SQL如下:
create or replace function FUN_SPLITSTR(str varchar2,splitchart varchar2,num number) return varchar2 is
begin
declare o1 number:=0;
o2 number:=0;
rt varchar2(100):='';
begin
if instr(str,splitchart,1,1)=0 and num=1 then
return(str);
end if;
if instr(str,splitchart,1,1)=0 and num>1 then
return(rt);
end if;
if(num=1) then
o1:=instr(str,splitchart,1,num);
if o1>0 then
rt:=substr(str,1,o1-1);
else
rt:=str;
end if;
else
o1:=instr(str,splitchart,1,num-1);
o2:=instr(str,splitchart,1,num);
if o1>0 and o2=0 then
rt:=substr(str,o1+1,length(str)-o1);
else
rt:=substr(str,o1+1,o2-o1-1);
end if;
end if;
return (rt);
end;
end FUN_SPLITSTR;