Oracle字符串分割函数

今天在创建视图的时候,碰到一个问题,问题如下:

  将字符格式为“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;

原文地址:https://www.cnblogs.com/lgx040605112/p/3445515.html