将Oracle字符串根据固定分隔符"切开"

对oracle的字符串进行拆分

运行环境:oracle11g、pl/sql developer
利用oracle程序块将"1,2,3,“这个字符串进行切割,取出"1”、“2”、"3"来。

可以利用substr函数和instr函数这俩函数,substr函数作为手术刀,instr函数作为标记切割位置的标尺(有点像操作系统里的head,tail那一套)

先回顾一下这俩函数的语法
SUBSTR(字符串,截取起始位置,截取步长)
//一定要注意SUBSTR最后一位参数是截取步长,不是截取结束位置
//一定要注意SUBSTR最后一位参数是截取步长,不是截取结束位置
//一定要注意SUBSTR最后一位参数是截取步长,不是截取结束位置
INSTR(源字符串,目标字符串,起始位置,匹配序号)

SELECT substr('1,2,3',0, 1 ) AS "截断后的字符" FROM DUAL
UNION
SELECT substr('1,2,3',instr('1,2,3', ',',1,1)+1, 1) AS "截断后的字符" FROM DUAL
--substr函数里的第二个参数加的1其实是加的下一个字符的长度
UNION
SELECT substr('1,2,3',instr('1,2,3', ',',1,2)+1, 1) AS "截断后的字符" FROM DUAL

运行截图
将Oracle字符串根据固定分隔符

你可能感兴趣的:(oracle)