在oracle中写一个自定义的函数,实现split分割字符串的效果

Oracle数据库内没有内置的split函数,但可以通过创建自定义函数来实现相同功能。本文介绍如何创建一个名为fun_split的函数,该函数接收一个包含逗号分隔的字符串,并返回一个包含分割后字符串的表。通过示例调用和使用方式,展示如何在查询中将结果集作为一列处理。
摘要由CSDN通过智能技术生成

问题:

       在oracle中没有split这个函数,但是我们可能会经常分割字符串,这时,我们可以写一个自定义的函数,实现split分割字符串的效果。

解决方法:

create or replace type varchartype as table of varchar2(200);  
-- 创建一个table类型,用于接受分割下来的字符串
-- 创建函数
create or replace function fun_split(str varchar2) return varchartype
is
       strs varchartype:=varchartype();   --声明一个strs名字为varchartype的table类型
       v_i number(2):=1;     --记录我是第几个,
       v_begin number(2):=1; --截取字符串的开始
       v_index number(2):=0; --查找字符(如,等)的索引      
begin
     loop
       v_index:=instr(str,',',1,v_i);
       strs.extend;          --手动扩展strs的下标    
       
       if v_index=0 then     --当查找的字符位置为0时即为未找到,直接取字符串即可
         strs(v_i):=substr(str,v_begin);
         exit;
       end if;
       strs(v_i):=substr(str,v_begin,v_index-v_begin);    --找到时ÿ

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值