ORACLE 模拟 java SPLIT

CREATE OR REPLACE FUNCTION F_SPLIT
/*
 * 功    能: split.
 * 输入参数: Liststr  string
 * 输入参数: Sepe     index
 * 输入参数: Sepe     separator. default is ','.
 * return sepeCount
 */
(
  Liststr in varchar2,
  inde    in number,
  Sepe    in varchar2 := ','
) return varchar2 is
  -- 去掉前后分隔符后的字符串
  Str       varchar2(4000);
  -- 要返回的字符串
  retStr    varchar2(100);
  -- 分隔符个数
  sepeCount number(4);
begin
  -- 去掉前后的分隔符;
  Str       := TRIM(BOTH Sepe FROM Liststr);
  sepeCount := f_getsepcount(Liststr, Sepe);
  IF sepeCount = 0 THEN
     return Liststr;
  END IF;
  IF inde > sepeCount THEN
    retStr := '0';
  ELSIF inde = sepeCount THEN
    retStr := Substr(str, Instr(str, Sepe, 1, inde) + 1, length(Str));
  ELSIF inde = 0 THEN
    retStr := Substr(str, 1, Instr(str, Sepe, 1, 1) - 1);
  ELSE
    str    := SubStr(Str, Instr(str, Sepe, 1, inde) + 1, length(str));
    retStr := Substr(str, 1, Instr(str, Sepe, 1, 1) - 1);
  END IF;
  return retStr;
end;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值