今天因工作需要,写了一个小函数,按分隔符截取字符串的,分享出来,希望有需要的朋友能用到。
功能实例: substrbysep('aaa,bb,ccccc,ddd,vvv',',',3)返回结果 'ccccc'.
函数:
create or replace function substrbysep(sourceString varchar2,
destString varchar2,
appearPosition number)
return varchar2 is
substring varchar2(255);
--作者:Alex Liu
--功能:按分隔符截取字符串
--参数:1、原始字符串;2、分隔符;3、截取第几段
begin
substring := substr(destString || sourceString || destString,
instr(destString || sourceString || destString,
destString,
1,
appearPosition) + 1,
instr(destString || sourceString || destString,
destString,
1,
appearPosition + 1) -
instr(destString || sourceString || destString,
destString,
1,
appearPosition) - 1);
return(substring);
end substrbysep;
功能实例: substrbysep('aaa,bb,ccccc,ddd,vvv',',',3)返回结果 'ccccc'.
函数:
create or replace function substrbysep(sourceString varchar2,
destString varchar2,
appearPosition number)
return varchar2 is
substring varchar2(255);
--作者:Alex Liu
--功能:按分隔符截取字符串
--参数:1、原始字符串;2、分隔符;3、截取第几段
begin
substring := substr(destString || sourceString || destString,
instr(destString || sourceString || destString,
destString,
1,
appearPosition) + 1,
instr(destString || sourceString || destString,
destString,
1,
appearPosition + 1) -
instr(destString || sourceString || destString,
destString,
1,
appearPosition) - 1);
return(substring);
end substrbysep;
/
另外一种方法正则表达式
SQL code
用正则表达式,一步就出来了
select regexp_substr('aaa,bb,ccccc,ddd,vvv','[^,]+',1,3)
from dual
;
REGEX
-----
ccccc
本文介绍了在Oracle数据库中使用正则表达式`REGEXP_SUBSTR`函数来按分隔符截取字符串的方法,例如从'aaa,bb,ccccc,ddd,vvv'中截取第三个元素'ccccc'。"
138472943,18603402,Halcon深度学习在缺陷检测中的应用实战,"['机器视觉', '深度学习', '图像处理', '自动化检测', '工业应用']
4053





