Oracle实现类似SPLIT函数功能

Oracle实现类似SPLIT函数功能

步骤1:创建函数的返回类型,它为自定义类型;

 

CREATE OR REPLACE TYPE type_split AS TABLE OF varchar2(4000);

 

步骤2: 实现SPLIT函数

CREATE OR REPLACE FUNCTION f_split(p_list varchar2, p_seperator varchar2) return type_split
PIPELINED IS
l_idx PLS_INTEGER;
v_list varchar2(32767):=p_list;
BEGIN
  LOOP
    l_idx:=instr(v_list,p_seperator);
    IF l_idx>0 THEN
      PIPE ROW(substr(v_list,1,l_idx-1));
      v_list:=substr(v_list,l_idx+length(p_seperator));
      ELSE
        PIPE ROW(v_list);
        EXIT;
    END IF;
  END LOOP;
END;
/


 

 

步骤3:检验函数功能

select * from table(f_split('aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,jjj',','));


 

Result:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值