zoukankan      html  css  js  c++  java
  • Oracle字符窜操作函数

    关于instr的用法是从 http://www.cnblogs.com/Xrinehart/archive/2005/04/21/142791.html 转帖过来的.

    INSTR方法的格式为
    INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)

    例如:INSTR(
    'CORPORATE FLOOR','OR'32)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。

    默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。

    所以SELECT INSTR(
    'CORPORATE FLOOR''OR'-11) "Instring" FROM DUAL的显示结果是

    Instring
    ——————
    14

    translate vs. replace

    translate(src,from_str,to_str): 如果src中存在from_str,那么此时translate的功能就相当于replace,直接将源字符窜src中所有的from_str全部替换成to_str.但是如果src中只包含了from_str的部分,此情况就有点不一样了.

    1.select translate('12o12o12o','12','1'),replace('12o12o12o','12','1'from dual;
    在这个例子里面,translate和replace起到的作用是相同的.

    2.select TRANSLATE('kkaxksx''kx''12'),TRANSLATE('kkaxksx''kks''12')from dual ;

    TRANSLATE(
    'kkaxksx''kx''12')    TRANSLATE('kkaxksx''kks''12')
    -----------------------------------------------------------------------
    11a21s2                              11ax1x

    translate将
    'kx''12'按字符分别进行对应,它会把'kkaxksx'中所有的'k'->'1','x'->'2'(在replace中是不会把from_str进行分解的,而是把它当成一个整体). 
    当from_str的长度大于to_str时,如from_str:
    'kxs',to_str:'12',则的'k'->'1','x'->'2','s'->'';最后的一位就对应空窜了.

    而在第二个替换中,from_str中有重复的值
    'k',那么在与to_str进行映射的过程中,则采用如下方式:
    'k'->'1',由于'k'已经映射过,所以第二位不进行匹配,但是from_str和to_str的字符映射指针都会向后移一位,最终就导致to_str的第二位被忽略.那么from_str的第三位则只能匹配''空窜.
  • 相关阅读:
    文档_word常用设置-操作
    Java NIO总结 整理
    Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
    Lock和synchronized比较详解
    SpringBoot如何将类中属性与配置文件中的配置进行绑定
    简述MyBatis的一级缓存、二级缓存原理
    服务器端filter解决ajax简单请求跨域访问问题
    Spring Boot异步执行程序
    程序猿和hr面试时的巅峰对决
    数据库三大范式详解(通俗易懂)
  • 原文地址:https://www.cnblogs.com/ungshow/p/1307165.html
Copyright © 2011-2022 走看看