PLSQL SUBSTR函数用于从字符串中提取子字符串。
SUBSTR函数接受三个参数,分别为input_string,start_position,长度。
SUBSTR使用输入字符集定义的字符来计算长度。 SUBSTRB使用字节而不是字符。
注意:
如果position为0,则将其视为1。
如果位置为正,则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函数时,省略length参数。
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函数从字符串的末尾开始,如果starting-position参数为负,则倒数。
示例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中存在的字符数少于starting-position参数中传递的值。
优点:
作为参数传递给SUBSTR的浮点数将自动转换为整数。