Oracle中的substr()函数的应用及解析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle中的substr()函数的应用及解析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2864字,纯文字阅读大概需要5分钟。
内容图文
![Oracle中的substr()函数的应用及解析](/upload/InfoBanner/zyjiaocheng/494/5a2e6c8989474d9c8b1090984acce254.jpg)
格式1: substr(string string, int a, int b);
格式2:substr(string string, int a) ;
解释:
格式1
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度
格式2
1、string 需要截取的字符串
2、a 可以理解为从第a个字符开始截取后面所有的字符串。
2)实例解析
实例:
1、substr("HelloWorld",0,3); //返回结果:Hel,截取从H开始3个字符
2、substr("HelloWorld",1,3); //返回结果:Hel,截取从H开始3个字符
3、substr("HelloWorld",2,3); //返回结果:ell,截取从e开始3个字符
4、substr("HelloWorld",0,100); //返回结果:HelloWorld,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。
5、substr("HelloWorld",-1,3); //返回结果:d
6、substr("HelloWorld",-2,3); //返回结果:ld
7、substr("HelloWorld",-3,3); //返回结果:rld
8、substr("HelloWorld",-4,3); //返回结果:orl
(注:当a等于0或1时,都是从第一位开始截取(如:1和2))
(注:虽然5、6、7、8截取的都是3个字符,结果却不是3 个字符; 只要a<b,取a得个数(如:5、6、7),当a>b时,才取b的个数(如:7和8))
9、substr("HelloWorld",0); //返回结果:HelloWorld,截取所有字符
10、substr("HelloWorld",1); //返回结果:HelloWorld,截取所有字符
11、substr("HelloWorld",2); //返回结果:elloWorld,截取从e开始之后所有字符
12、substr("HelloWorld",3); //返回结果:lloWorld,截取从l开始之后所有字符
13、substr("HelloWorld",-1); //返回结果:d,从最后一个d开始 往回截取1个字符
14、substr("HelloWorld",-2); //返回结果:ld,从最后一个d开始 往回截取2个字符
15、substr("HelloWorld",-3); //返回结果:rld,从最后一个d开始 往回截取3个字符
(注:当只有两个参数时;不管是负几,都是从最后一个开始 往回截取(如:13、14、15))
图解:
1、
2、
5、
6、
7、
8、
13、
14、
15、
3)完整函数实例
create or replace function get_request_code return varchar2 AS -- 函数的作用:自动生成单号 v_mca_no mcode_apply_01.mca_no%TYPE; CURSOR get_max_mca_no IS SELECT max(substr(mca_no, 11, 1)) -- 查出的最大单号,截取出最后三位,如001、002...00n FROM mcode_apply_01 WHERE substr(mca_no, 3, 8) = to_char(sysdate, ‘YYYYMMDD‘); -- 生成(从第三位开始)日期【如:20170422】 v_requestcode VARCHAR2(3); BEGIN OPEN get_max_mca_no; FETCH get_max_mca_no INTO v_requestcode; CLOSE get_max_mca_no; IF v_requestcode IS NULL THEN v_requestcode := NVL(v_requestcode, 0); -- NVL()函数:当v_requestcode为NULL时,取0作为值 END IF; v_requestcode := lpad(v_requestcode + 1, 3, ‘0‘); -- 将游标中截取到的值加1,然后向左填充0,生成 001...00n 序号; lpad()函数:向左填充 v_mca_no := ‘MA‘ || to_char(sysdate, ‘YYYYMMDD‘) || v_requestcode; -- 最终生成的申请单号(如:MA20170422001;MA20170422002;...MA2017042200N ) RETURN ‘0~,‘|| v_mca_no; END ;
Oracle中的substr()函数的应用及解析
标签:序号 大数 image 分享 一个 -- ... acl 9.png
本文系统来源:http://www.cnblogs.com/dshore123/p/7805050.html
内容总结
以上是互联网集市为您收集整理的Oracle中的substr()函数的应用及解析全部内容,希望文章能够帮你解决Oracle中的substr()函数的应用及解析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。