一varchar2变量,如"e\adsfs\dfsa\defff\def",变量中有多个"\"或是其它特殊符号,现需从右解析该字符,取到最后一个"\"号的字节符"def".
全程两个函数:
1)substr:
oracle的substr函数的用法
取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] )
如:
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'
其中负数表示从后往前数.
2)instr
oracle的instr函数的用法
返回目标字符串从源字符串超始们置出现匹配个数的位置.
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
例:
检索'RA'
INSTR('ORAORASQL ARARA','RA') ...2
检索第四个字符后面的第二个'RA'
INSTR('ORAORASQL ARARA','RA',4,2) ...12
检索后面第五个字符以前的'RA'
INSTR('ORAORASQL ARARA','RA',-5,1) ...5
其中负数表示从后往前匹配.
答案:
SELECT substr('af\cdef\erdf\eef',INSTR('af\cdef\erdf\eef', '\', -1, 1)+1) "Instring" FROM DUAL
全程两个函数:
1)substr:
oracle的substr函数的用法
取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] )
如:
substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'
其中负数表示从后往前数.
2)instr
oracle的instr函数的用法
返回目标字符串从源字符串超始们置出现匹配个数的位置.
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)
例:
检索'RA'
INSTR('ORAORASQL ARARA','RA') ...2
检索第四个字符后面的第二个'RA'
INSTR('ORAORASQL ARARA','RA',4,2) ...12
检索后面第五个字符以前的'RA'
INSTR('ORAORASQL ARARA','RA',-5,1) ...5
其中负数表示从后往前匹配.
答案:
SELECT substr('af\cdef\erdf\eef',INSTR('af\cdef\erdf\eef', '\', -1, 1)+1) "Instring" FROM DUAL