📜  PLSQL | INSTR4函数

📅  最后修改于: 2022-05-13 01:55:34.544000             🧑  作者: Mango

PLSQL | INSTR4函数

PLSQL INSTR4函数用于使用 UCS4 代码点返回字符串中子字符串的位置。 UCS-4 代码点是一种字符编码,它允许将每个值表示为恰好四个字节(一个 32 位字)。 UCS-4 表示每个字符的可能值介于 0 和十六进制 7FFFFFFF 之间。

PLSQL INSTR4函数在字符串中搜索用户使用字符指定的子字符串,并返回字符串中指定出现的子字符串的第一个字符的位置。 PLSQL INSTR4函数接受四个参数,它们是字符串、子字符串、起始位置和第 n 次出现。

字符串和子字符串可以是任何数据类型,例如 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB 或 NCLOB。

句法:

INSTR4(string, substring [, start_position [, nth_appearance ]])

使用的参数:

  • 字符串 -用于指定需要在其中搜索子字符串的字符串。它可以是任何数据类型 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB 或 NCLOB。
  • substring -用于指定需要搜索的子字符串。它可以是任何数据类型 CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB 或 NCLOB。
  • start_position –这是一个可选参数,用于指定字符串中搜索的开始位置。默认值为 1。INSTR4函数从字符串末尾开始计数到 start_position 的字符数,如果插入的值为负数,则向字符串开头搜索。
  • 第 n 次出现 -这是一个可选参数,用于指定子字符串的第 n 次出现。默认值为 1。

支持的 Oracle/PLSQL 版本:

  1. 甲骨文 12c
  2. 甲骨文 11g
  3. 甲骨文 10g
  4. 甲骨文 9i
  5. 甲骨文 8i

示例 1:使用字符向前搜索以查找子字符串的位置。

DECLARE 
   Test_String string(20) := 'Geeksforgeeks';
   
   
BEGIN 
   dbms_output.put_line(INSTR4(Test_String, 'e')); 
   
END;  

输出:

2 

示例 2:使用字符位置向前搜索以查找子字符串的位置。

DECLARE 
   Test_String string(20) := 'Geeksforgeeks';
      
BEGIN 
   dbms_output.put_line(INSTR4(Test_String, 'e', 1, 1)); 
   
END;  

输出:

2 

示例 3:使用字符位置向前搜索以查找子字符串在第三个位置的位置。

DECLARE 
   Test_String string(20) := 'Geeksforgeeks';
   
BEGIN 
   dbms_output.put_line(INSTR4(Test_String, 'e', 1, 3)); 
   
END; 

输出:

10 

示例 4:使用字符位置向后搜索以查找子字符串的位置。

DECLARE 
   Test_String string(20) := 'Geeksforgeeks';
   
BEGIN 
   dbms_output.put_line(INSTR4(Test_String, 'e', -2, 1)); 
   
END; 

输出:

11 

示例 5:使用三字节字符集查找子字符串的位置。

DECLARE 
   Test_String string(20) := 'Geeksforgeeks';
   
BEGIN 
   dbms_output.put_line(INSTR4(Test_String, 'for', 1, 1)); 
   
END;  

输出:

6