您的位置:首页 > 数据库 > Oracle

Oracle函数,按分隔符截取字符串 [问题点数

2016-01-29 10:49 501 查看
今天因工作需要,写了一个小函数,按分隔符截取字符串的,分享出来,希望有需要的朋友能用到。

功能实例: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: