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)
使用的参数:
- input_string –用于指定源字符串。
- start_position –用于指定提取的起始位置。
- length –这是一个可选参数,用于指定要提取的字符数。
返回值:
PLSQL 中的 SUBSTR函数返回一个字符串值。
支持的 Oracle/PLSQL 版本:
- 甲骨文 12c
- 甲骨文 11g
- 甲骨文 10g
- 甲骨文 9i
- 甲骨文 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 的浮点数会自动转换为整数。