1.upper(STR) 转大写

2.lower(STR) 转小写

3.initcap(str) 转首字母大写

多个单词都会变成首字母大写。英文字母中间有非英文的字母就认为是两个单词

SELECT UPPER('i love apple'), LOWER('I LOVE APPLE'), INITCAP('hello world')
 FROM DUAL;

举例:查询员工姓名转首字母大写 职位转小写

SELECT INITCAP(ENAME),LOWER(JOB)
FROM EMP;

4.length(str) 字符长度

5.lengthb(str) 字节长度

注:字节长度和字符长度不一定相等
1T=1024G
1G=1024M
1M=1024K
1K=1024BYTE 字节
1byte=8bit

SELECT LENGTH('中国'),LENGTHB('中国'),LENGTH('ABC'),LENGTHB('ABC')
FROM DUAL;

6.TRIM(STR) 去两端空格

7.LTRIM(STR1[,STR2]) 去做左端的字符

8.RTRIM(STR1[,STR2]) 去右端的字符 str2不写默认去空格

SELECT TRIM('  A B C  ')||'B',LTRIM('  ABC'),RTRIM('ABCBCC','C')
FROM DUAL;

9.lpad(STR1,数,str2) 向左填充

10.rpad(STR1,数,str2) 向右填充

str1:原字符串
数:填充之后的显示长度 如果原字符串长度比填充之后的长度长 就变成了截断
str2:要填充的字符串

SELECT LPAD('ABCDEF',4,'*'),RPAD('ABCDEF',4,'*')
FROM DUAL;



举例:再abc的左右两边填充两个星

SELECT RPAD(LPAD('ABC',7,'星'),11,'星')
FROM DUAL;

11.instr(STR1,STR2[,数1[,数2]]) 查找字符串出现的位置

str1 原字符串
str2 要找的字符串
数1 从第几位开始找 不写默认从第一位开始找 数1为负数从倒数第几位开始找
数2 第几次出现 不写默认找第一次出现的位置

SELECT INSTR('HELLOWORLD', 'O') A, --第一位第一次
       INSTR('HELLOWORLD', 'O', 6) B, -- 第六位第一次
       INSTR('HELLOWORLD', 'O', 1, 2) C, --第一位第二次
       INSTR('HELLOWORLD', 'O', -1) D, --倒数第一位 第一次
       INSTR('HELLOWORLD', 'O', -5) E, --倒数第五位第一次
       INSTR('HELLOWORLD', 'O', -1, 2) F --倒数第一位第二次
 FROM DUAL;

12.SUBSTR(str,数1[,数2]) 截取字符串

str 原字符串
数1 从第几位开始截 可以是负数 表示倒数第几位
数2 截取几位 不写默认截取到最后

SELECT SUBSTR('HELLOWORLD', 2),
 SUBSTR('HELLOWORLD', 2, 2),
 SUBSTR('HELLOWORLD', -2),
 SUBSTR('HELLOWORLD', -5, 2)
 FROM DUAL;

13.replace(STR1,STR2[,STR3]) 整体替换

把str1里面的str2整体替换成str3
str3不写默认替换为空

SELECT REPLACE('HELLOWORLD','OWO'),
 REPLACE('HELLOWORLD','OWO','@@@')
FROM DUAL;

14.TRANSLATE(STR1,STR2,STR3) 逐一替换\

把str1里面的str2注逐一换成str3

举例:把helloworld中的l替换成* o替换成#

SELECT TRANSLATE('HELLOWORLD','LO','*#6')
FROM DUAL;

SELECT TRANSLATE('HELLOWORLD','LO','*')
FROM DUAL;

SELECT TRANSLATE('HELLOWORLD','LLL','123')
FROM DUAL; 

参数3的位数比参数2多的时候 参数3多出的位数无效
参2的位数比参数3多 参数2多出来的会被替换成空
参数2为空或者参3为空 最后结果为空
多次替换只有第一次有效

15.concat(STR1,STR2) 连接字符串

只能是两个字符 如果要连接多个字符 需要函数嵌套

SELECT CONCAT(CONCAT('HELLO','    '),'CHINA')
FROM DUAL;

更多推荐

【Oracle 数据库】奶妈式教程 day12 字符函数