PLSQL |指令函数
PLSQL INSTR函数用于返回字符串中子字符串的位置。
PLSQL INSTR函数在字符串中搜索用户使用字符指定的子字符串,并返回字符串中指定出现的子字符串的第一个字符的位置。
PLSQL INSTR函数接受四个参数,它们是字符串、子字符串、起始位置和第 n 次出现。
字符串和子字符串可以是任何数据类型,例如 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB 或 NCLOB。
句法:
INSTR(string, substring [, start_position [, nth_appearance ]])
使用的参数
- 字符串——
它用于指定需要在其中搜索子字符串的字符串。它可以是任何数据类型 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB 或 NCLOB。 - 子串——
它用于指定需要搜索的子字符串。它可以是任何数据类型 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB 或 NCLOB。 - 开始位置——
它是一个可选参数,用于指定字符串中搜索开始的位置。默认值为 1。 INSTR函数从字符串末尾开始计数到 start_position 的字符数,如果插入的值为负数,则向字符串开头搜索。 - 第 n 次出现——
它是一个可选参数,用于指定子字符串的第 n 次出现。默认值为 1。
支持的 Oracle/PLSQL 版本:
- 甲骨文 12c
- 甲骨文 11g
- 甲骨文 10g
- 甲骨文 9i
- 甲骨文 8i
示例 1:使用字符向前搜索以查找子字符串的位置。
DECLARE
Test_String string(20) := 'Geeksforgeeks';
BEGIN
dbms_output.put_line(INSTR(Test_String, 'e'));
END;
输出:
2
示例 2:使用字符位置向前搜索以查找子字符串的位置。
DECLARE
Test_String string(20) := 'Geeksforgeeks';
BEGIN
dbms_output.put_line(INSTR(Test_String, 'e', 1, 1));
END;
输出:
2
示例 3:使用字符位置向前搜索以查找子字符串在第三个位置的位置。
DECLARE
Test_String string(20) := 'Geeksforgeeks';
BEGIN
dbms_output.put_line(INSTR(Test_String, 'e', 1, 3));
END;
输出:
10
示例 4:使用字符位置向后搜索以查找子字符串的位置。
DECLARE
Test_String string(20) := 'Geeksforgeeks';
BEGIN
dbms_output.put_line(INSTR(Test_String, 'e', -2, 1));
END;
输出:
11
示例 5:使用三字节字符集查找子字符串的位置。
DECLARE
Test_String string(20) := 'Geeksforgeeks';
BEGIN
dbms_output.put_line(INSTR(Test_String, 'for', 1, 1));
END;
输出:
6