INSTR 函数在一个字符串中搜索指定的字符,返回发现指定的字符的位置。

注意:多字节符(汉字、全角符等),按 1 个字符计算。

语法

  1. INSTR(c1,c2[,i[,j]])

参数

参数说明
c1被搜索的字符串。字符串类型可为:CHARVARCHAR2NCHARNVARCHAR2CLOB
c2希望搜索的字符串。字符串类型可为:CHARVARCHAR2NCHARNVARCHAR2CLOB
i搜索的开始位置,默认值为 1。当值小于 0 时,搜索从反方向开始,但是仍返回被搜索到的字符的正序位置。
jj 次出现的位置,默认值为1。

返回类型

NUMBER 数据类型。

示例

此示例展示了字符 在字符串 重庆某软件公司 中第一次出现的位置。

  1. SELECT INSTR ('重庆某软件公司','某',1,1) instring FROM DUAL;

返回结果:

  1. +----------+
  2. | instring |
  3. +----------+
  4. | 3 |
  5. +----------+

此示例中, instring1 应返回正向搜索 ce 时在字符串中第二次出现的位置,instring2 应返回反向搜索 ce 时在字符串中第二次出现的位置:

  1. SELECT INSTR ('oceanbase pratice','ce',1,2) instring1INSTR ('oceanbase pratice','ce',-1,2) instring2 FROM DUAL;

返回结果,正向搜索时 ce 第二次出现在第 16 位,反向搜索时 ce 第二次出现在第二位:

  1. +----------+------------+
  2. | instring1 | instring2 |
  3. +----------+------------+
  4. | 16 | 2 |
  5. +----------+------------+