但是你从312的2开始找 就找不到“1”这个字符了
------解决方案-------------------- position is an nonzero integer indicating the character of string where Oracle begins the search. If position is negative, then Oracle counts and searches backward from the end of string.
第三个参数就是position
------解决方案-------------------- instr('312','1',2) b, 返回查找第2个字符的位置 instr('312','1',3) c from dual; 返回查找第1个字符的位置
------解决方案-------------------- 第一个参数是要操作的数据,第二个参数是要找的数据,第三个参数从第几位开始找
------解决方案-------------------- 查manual去。。
------解决方案-------------------- instr(result binary_integer,str1 in varchar2,str2 in varchar2,pos in binary_integer,nth in binary_integer); 在str1里面从第pos位置到第nth位置开始查找str2,返回第一个出现str2的位置(整个str1中得位置)
------解决方案--------------------
select instr('a-b-c-d-e','-',1,1) a,
instr('a-b-c-d-e','-',2,2) b,
instr('a-b-c-d-e','-',3,3) c from dual;
------------------------
a b c
2 4 8
------解决方案-------------------- 实测结果: