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的第三位则只能匹配''空窜.
  • 相关阅读:
    NLP 基础问题及解析
    linux 命令精简
    linux 文件属性及操作
    linux 文件编辑命令vim
    NLP attention 简述
    数据结构
    2020 走进新时代
    条件随机场CRF 摘要
    linux的jdk、tomcat、tomcat安装等
    VMware所在磁盘满了、linux中date修改、ssh、eclipse的使用问题等
  • 原文地址:https://www.cnblogs.com/ungshow/p/1307165.html
Copyright © 2011-2022 走看看