Oracle INSTR() 函数使用指南
Oracle INSTR()
是一个内置函数,它在给定字符串中搜索子字符串并返回一个表示字符串索引位置的整数。
Oracle INSTR()
执行区分大小写的搜索。
Oracle 有几个与之类似的函数,只是它们计算位置的方式不同:
INSTR
使用输入字符集定义的字符定义位置,第一个字符的位置是 1。INSTRB
使用字节而不是字符定义位置。INSTRC
使用 Unicode 完整字符定义位置。INSTR2
使用 UCS2 代码点定义位置。INSTR4
使用 UCS4 代码点定义位置。
如果你需要根据正则表达式模式进行匹配,请使用 REGEXP_INSTR()
。
Oracle INSTR()
语法
这里是 Oracle INSTR()
函数的语法:
INSTR(string , substring [, position [, occurrence ] ])
参数
string
-
必需的。要从中搜索的字符串。它可以是
CHAR
,VARCHAR2
,NCHAR
,NVARCHAR2
,CLOB
, 或NCLOB
数据类型。 substring
-
必需的。要搜索的子字符串。它可以是
CHAR
,VARCHAR2
,NCHAR
,NVARCHAR2
,CLOB
, 或NCLOB
数据类型。 position
-
可选的。 它是一个非零整数,指示开始搜索的索引位置。如果
position
为负数,则 Oracle 从string
末尾开始倒数,然后从结果位置向后搜索。它从 1 开始。 occurrence
-
可选的。它是一个整数以指示要搜索字符串的第几次出现。
返回值
Oracle INSTR()
函数返回一个整数,它是子字符串 substring
在字符串 string
中的索引位置。
如果在给定的字符串中找不到给定的子字符串, INSTR()
将返回 0
。
如果任意一个参数为 NULL
, INSTR()
将返回 NULL
。
Oracle INSTR()
示例
这里有几个展示了 Oracle INSTR()
函数用法的示例。
基本用法
下面的语句从 Hello World
搜索 l
:
SELECT
INSTR('Hello World', 'l') Result
FROM dual;
输出:
RESULT
_________
3
在本示例中,l
是 Hello World
中的第 3 个字符,因此它返回了 3
。
起始位置
Oracle INSTR()
函数允许您指定开始搜索的位置:
SELECT
INSTR('Hello World', 'l', 4) Result
FROM dual;
输出:
RESULT
_________
4
在本示例中,我们通过 position
参数指示从第 4 个字符开始搜索。
第几次出现
Oracle INSTR()
函数允许您指定要搜索子字符串的第几次出现:
SELECT
INSTR('Hello World', 'l', 1,1) Result1,
INSTR('Hello World', 'l', 1,2) Result2,
INSTR('Hello World', 'l', 1,3) Result3
FROM dual;
输出:
RESULT1 RESULT2 RESULT3
__________ __________ __________
3 4 10
找不到
如果在给定的字符串中找不到给定的子字符串, INSTR()
将返回 0
。
SELECT
INSTR('Hello World', 'x') Result1,
INSTR('Hello World', 'l', 20) Result2
FROM dual;
输出:
RESULT1 RESULT2
__________ __________
0 0
在本示例中,虽然 Hello World
中包含 l
,但是由于起始搜索的位置是 20,因此 INSTR('Hello World', 'l', 20)
返回 0
。
NULL 参数
如果任意一个参数为 NULL
,该函数将返回 NULL
。
SET NULL 'NULL';
SELECT
INSTR(NULL, 'A') null1,
INSTR('A', NULL) null2,
INSTR('A', 'A', NULL) null3,
INSTR('A', 'A', 1, NULL) null4
FROM dual;
输出:
NULL1 NULL2 NULL3 NULL4
________ ________ ________ ________
NULL NULL NULL NULL
在本示例中,我们使用 SET NULL 'NULL';
语句将 NULL
值显示为 'NULL'
字符串。
结论
Oracle INSTR()
是一个内置函数,它在给定字符串中搜索子字符串并返回一个表示字符串索引位置的整数。