Oracle单行字符串函数是处理文本数据的利器,能帮你轻松完成大小写转换、填充、截取、替换等操作。常用函数包括CONCAT、SUBSTR、INSTR、LENGTH、TRIM、LPAD、RPAD、REPLACE、UPPER、LOWER、INITCAP等。下面直接上教程和代码示例:
CONCAT函数
CONCAT(string1, string2) 用于连接两个字符串。示例:SELECT CONCAT('Hello', ' World') FROM DUAL; 输出:Hello World
SUBSTR函数
SUBSTR(string, start_position, length) 截取子字符串。示例:SELECT SUBSTR('Oracle Database', 1, 6) FROM DUAL; 输出:Oracle。注意:start_position可为负数,从右边计数。
INSTR函数
INSTR(string, substring, start_position, occurrence) 返回子串首次出现的位置。示例:SELECT INSTR('Hello World', 'o') FROM DUAL; 输出:5
LENGTH函数
LENGTH(string) 返回字符串长度。示例:SELECT LENGTH('Hello') FROM DUAL; 输出:5。对于中文:SELECT LENGTH('你好') FROM DUAL; 输出:2
TRIM、LTRIM、RTRIM函数
TRIM(char FROM string) 去除两端指定字符。LTRIM左端,RTRIM右端。示例:SELECT TRIM('x' FROM 'xxHello Worldxx') FROM DUAL; 输出:Hello World
LPAD和RPAD函数
LPAD(string, length, pad_string) 左填充,RPAD右填充。示例:SELECT LPAD('123', 5, '0') FROM DUAL; 输出:00123
REPLACE函数
REPLACE(string, search_string, replacement_string) 替换字符串。示例:SELECT REPLACE('Hello World', 'World', 'Oracle') FROM DUAL; 输出:Hello Oracle
UPPER、LOWER、INITCAP函数
UPPER(string) 全大写,LOWER全小写,INITCAP每个词首字母大写。示例:SELECT UPPER('hello'), LOWER('HELLO'), INITCAP('hello world') FROM DUAL; 输出:HELLO hello Hello World
TRANSLATE函数
TRANSLATE(string, from_string, to_string) 字符逐一替换。示例:SELECT TRANSLATE('ABCDE', 'AE', 'ae') FROM DUAL; 输出:abcDE
Q: CONCAT能连接多个字符串吗?
A: 不能,只能两个,用嵌套如CONCAT(CONCAT(a,b),c)。
Q: SUBSTR负数位置怎么用?
A: 从右边数,-1是最后一个字符,如SUBSTR('ABC', -2, 1)输出B。
Q: LENGTH和LENGTHB区别?
A: LENGTH按字符,LENGTHB按字节,多字节字符如中文用LENGTHB准。
Q: 如何去除所有空格?
A: 用REPLACE(string, ' ', '') 或REGEXP_REPLACE(string, '\s', '')。