📜  PLSQL | SUBSTR函数

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

PLSQL | SUBSTR函数

PLSQL SUBSTR函数用于从字符串中提取子字符串。
SUBSTR函数接受三个参数,即 input_string、start_position、length。
SUBSTR 使用输入字符集定义的字符计算长度。 SUBSTRB 使用字节而不是字符。

笔记:

  • 如果位置为 0,则将其视为 1。
  • 如果 position 为正,则 Oracle 数据库从 char 的开头开始计数,以查找第一个字符。
  • 如果 position 为负数,则 Oracle 从 char 的末尾向后计数。
  • 如果省略 substring_length,则 Oracle 将所有字符返回到 char 的末尾。如果 substring_length 小于 1,则 Oracle 返回 null。

句法:

SUBSTR( input_string, start_position, length)

使用的参数:

  1. input_string –用于指定源字符串。
  2. start_position –用于指定提取的起始位置。
  3. length –这是一个可选参数,用于指定要提取的字符数。

返回值:
PLSQL 中的 SUBSTR函数返回一个字符串值。

支持的 Oracle/PLSQL 版本:

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

示例 1:在 SUBSTR函数中传递所有三个参数。

DECLARE 
   Test_String string(25) := 'Geeksforgeeks';
   
BEGIN 
   dbms_output.put_line(SUBSTR(Test_String, '6', '3')); 
   
END;      

输出:

for

示例 2:在将参数传递给 SUBSTR函数时省略长度参数。

DECLARE 
   Test_String string(25) := 'Geeksforgeeks';
   
BEGIN 
   dbms_output.put_line(SUBSTR(Test_String, '6')); 
   
END;    

输出:

forgeeks 

示例 3:在将参数传递给 SUBSTR函数时,在starting_position 参数中传递一个负值。

DECLARE 
   Test_String string(25) := 'Geeksforgeeks';
   
BEGIN 
   dbms_output.put_line(SUBSTR(Test_String, '-6', '3')); 
   
END;     

输出:

rge 

SUBSTR函数从字符串的末尾开始,如果起始位置参数为负值,则向后计数。

示例 4:在 starting_position 参数中传递一个大于 input_string 中字符数的值。

DECLARE 
   Test_String string(25) := 'Geeksforgeeks';
   
BEGIN 
   dbms_output.put_line(SUBSTR(Test_String, '-16', '3')); 
   
END; 

输出:

NULL 

SUBSTR函数返回 NULL,因为 input_string 中存在的字符数小于在起始位置参数中传递的值。

优势:
作为参数传递给 SUBSTR 的浮点数会自动转换为整数。