首页 > 数据库 >ORACLE instr函数

ORACLE instr函数

时间:2023-07-12 22:13:39浏览次数:38  
标签:字符 函数 FLOOR instr 字符串 ORACLE CORPORATE

语法

 

 

   系列函数:INSTR 系列函数总共有5 个,常用为 instr函数,其他4个都是变体。这些函数之间区别仅在于入参 string数据类型的限制。Instr函数入参string类型要求为: char,  varchar2,   nchar(采用unicode标准字符集存储),  nvarchar2,  clob(character large object),  nclob,
而除instr函数外的其他instrb,  instrc,  instr2,  instr4 函数增入参string 均不允许使用clob,nclob 类型数据。

   函数用途: instr函数主要用来在源字符串中查找目标字符串所在的位置。如果有匹配到,则返回目标字符串所在位置序号。如无匹配到,则返还0。

   参数说明:
    string: 源字符串(必需)。
    substring:目标字符串(必需)。
    positon:源字符串开始匹配位置, 非0整数(或者能被最终隐式转换为整数类型)。选填,不填时默认为1,即从源字符串左边第一个字符开始匹配。当为正数时,比如2,代表从源字符从左向右第二个字符开始从左向右匹配,为负数时,比如-2,代表从源字符从右向左(倒数)第2个字符开始,依然从右边向左开始匹配查询。
    occurrence:目标字符在源字符串中按position 参数条件匹配到的次数(即第几次被匹配到).

   示例:
    (1) 从"corporate floor"中顺序查找"or":

SELECT  INSTR('CORPORATE FLOOR','OR',3,2) INSTRING FROM DUAL;


  结果为14,即从'CORPORATE FLOOR'字符串顺序第三个字符'R'开始,顺序向右查找字符'OR'第二次出现的位置,即'CORPORATE FLOOR'最末尾的两个字符'OR',此时从左到右计数最末尾'OR'在源字符串'CORPORATE FLOOR'中的位置,为14(空格也算一个字符),查询结束.

 


  (2) 从"corporate floor"中倒序查找"or":

SELECT INSTR('CORPORATE FLOOR','OR',-3,2) REVERSE_INSTRING FROM DUAL;


  结果为2,即从'CORPORATE FLOOR'字符串倒序第三个字符'O'开始,倒序向左查找字符'OR'第二次出现的位置,即'CORPORATE FLOOR'的第二、三两个字符'OR',此时从左到右计数到第二、三个字符'OR'在源字符串'CORPORATE FLOOR'中的位置,为2,查询结束.

 


  (3) 通过instrb函数从"corporate floor"中顺序查找"or":

SELECT INSTRB('CORPORATE FLOOR','OR',5,2) "Instring in bytes" FROM DUAL; 


  instrb以字节代替字符,以单字节字符集(如ASCII)查询时跟instr效果一样,以双字节字符集(如GBK,UNICODE)查询时一个字符占2个字节,因此返还结果与INSTR函数不一致。上面语句,在单字节字符集系统查询结果为14,而在双字节字符集查询结果为27。

 

参考文档 ORALCE官网 SQL Language Reference:https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/About-SQL-Functions.html#GUID-D51AB228-518C-4213-8BD4-F919623D105E

标签:字符,函数,FLOOR,instr,字符串,ORACLE,CORPORATE
From: https://www.cnblogs.com/rogerfederer/p/17548991.html

相关文章

  • 111.在进行函数参数以及返回值传递时,可以使用引用或者值传递,其中使用引用的好处有哪
    111.在进行函数参数以及返回值传递时,可以使用引用或者值传递,其中使用引用的好处有哪些?对比值传递,引用传参的好处:1)在函数内部可以对此参数进行修改2)提高函数调用和运行的效率(因为没有了传值和生成副本的时间和空间消耗)如果函数的参数实质就是形参,不过这个形参的作用域只是在函......
  • 112.说一说strcpy、sprintf与memcpy这三个函数的不同之处
    112.说一说strcpy、sprintf与memcpy这三个函数的不同之处1.复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2.复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3......
  • C语言库函数
    C语言库函数1.stdio库1.1printf函数printf格式化输出符:inta=3;floatb=3.14;doublec=5.2;chars1[6]={'h','e','l','l','o','\0'};char*s2="world";printf("%d%f%f\n",......
  • 高等数学——一隐函数及参数方程求导
    隐函数求导显函数:\(y\)能表达成\(x\)的一种表达式。隐函数:\(y\)在表达式里提取不出来。\[e^{y}+xy-e=0\]两边同时对\(x\)进行求导即可。\[e^{y}\cdoty'+y+xy'=0\]\[y'=-\frac{y}{e^{y}+x}\]出来的带着\(y\)带着就带着,甭管。对于形似:\[y=u^{v}=e^{\lnu^{v}}=e^{......
  • 防抖,节流函数
    //防抖函数functiondebounce(func,wait){//创建一个定时器lettimeout//返回一个函数,这个函数会在一个时间区间结束后调用funcreturnfunction(){//如果定时器还在运行,则清除定时器timeout&&clearTimeout(timeout)//否则,设定定时器,等待w......
  • PYTHON 函数 使用
    如何使用PYTHON里的ZIP函数a=["Peter","Ben","Alice","Jim"]b=["Apple","Banana","Pear","Orange"]新建两个列表,赋予不同的内容。pack=zip(a,b)print(list(pack))pack=zip(a,b)prin......
  • 函数
    函数定义与调用1先定义后调用2定义阶段不执行代码3调用函数才会执行代码(调用的时候一定要在函数名后加括号,若有参数,则传递参数)4函数名就相当于变量名指向的是内存中的函数代码所在的位置func()#报错name'func'isnotdefined#定义函数deffunc():print(......
  • python实现两函数通过缩放,平移和旋转进行完美拟合
    Curve_fitting前几天在工作的时候接到了一个需求,希望将不同坐标系,不同角度的两条不规则曲线,并且组成该曲线的点集数量不一致,需求是希望那个可以通过算法的平移和旋转搞到一个概念里最贴合,拟合态进行比较。这是初步将两组数据画到图里的情况,和背景需求是一致的。其实从肉眼看过......
  • RedHat5.5安装Oracle10205
    1.安装前准备1.1.修改hostsvi/etc/hosts192.168.1.100test01#这一句不是命令,是追加到hosts文件中1.2.关闭防火墙等#关闭防火墙serviceiptablesstopchkconfigiptablesoff#关闭NetworkManagerserviceNetworkManagerstopchkconfigNetworkManageroff#关......
  • VBA常用的文本函数 instr、mid
    InStr函数DimSearchString,SearchChar,MyPosSearchString="XXpXXpXXPXXP"'Stringtosearchin.SearchChar="P"'Searchfor"P".'Atextualcomparisonstartingatposition4.Returns6.MyPos=Inst......