Oracle字符串分割函数

本文介绍了一种在Oracle数据库中自定义函数的方法,用于将特定格式的字符串“XXX,YYY”进行分割,并将结果作为两个独立的字段返回。此方法适用于在创建视图时需要对复合字符串进行拆分的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值