oracle怎么截取两个字符串之间的内容 20
2个回答
推荐于2017-09-13
展开全部
oracle本身自带许多了函数,但是在实际的工作中,这些函数是远远不够用,因此自定义一些函数往往使代码的执行效率更高!
需求:取出字符串'0001 1 dfds 13528221 dgdfkgdf'中第3个标识符(这个里面标识符是一个空格' ')和第4个标识符之间的字符串
create or replace function strfind(cs in varchar2, --字符串 bs in varchar2,--标示符 x in number, --想要取到字符串部分的第1个标示符是第几个标识符 y in number) --想要取到字符串部分的第2个标示符是第几个标识符,与前者相连return varchar2 isz varchar2(20);m number;n number;p number;begin --返回第1个标志符所在的位置 select instr(cs,bs,1,x) into m from dual; --返回第2个标志符所在的位置 select instr(cs,bs,1,y) into n from dual; --取得字符串z的长度 p:=n-m-1; select substr(cs,m+1,p) into z from dual; return(z);end strfind;
------测试及返回结果
需求:取出字符串'0001 1 dfds 13528221 dgdfkgdf'中第3个标识符(这个里面标识符是一个空格' ')和第4个标识符之间的字符串
---------------------------------
select strfind('0001 1 dfds 13528221 dgdfkgdf',' ',3,4) from dual
查询结果:
---------------------------------
13528221
说明:定义的参数bs最好是单个字符,可以根据实际情况对程序改动
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询