Oracle 11G提供了丰富的内置函数,覆盖字符处理、数值计算、日期操作、类型转换、数据聚合等多个场景,熟练使用这些函数可以减少自定义逻辑的开发量,提升SQL语句的执行效率。下面分类整理常用的函数及使用方法。

一、字符函数
字符函数主要用于处理字符串类型的数据,常用的有以下几种:
- CONCAT:拼接两个字符串,作用和
||操作符一致 - SUBSTR:截取字符串的指定部分
- UPPER/LOWER:将字符串转为全大写/全小写
- LENGTH:返回字符串的长度
- TRIM:去除字符串首尾的指定字符,默认去除空格
以下是字符函数的使用示例:
-- 拼接字符串
SELECT CONCAT('Hello', ' Oracle') FROM DUAL; -- 返回 Hello Oracle
-- 截取字符串,从第1位开始取3个字符
SELECT SUBSTR('Oracle 11G', 1, 3) FROM DUAL; -- 返回 Ora
-- 转为大写
SELECT UPPER('hello') FROM DUAL; -- 返回 HELLO
-- 获取字符串长度
SELECT LENGTH('Oracle') FROM DUAL; -- 返回 6
-- 去除首尾空格
SELECT TRIM(' test ') FROM DUAL; -- 返回 test二、数值函数
数值函数用于处理数值类型的数据,常见的函数如下:
- ROUND:对数值进行四舍五入
- TRUNC:截断数值,不进行四舍五入
- MOD:返回两个数相除的余数
- ABS:返回数值的绝对值
- CEIL/FLOOR:向上取整/向下取整
数值函数使用示例:
-- 四舍五入,保留2位小数 SELECT ROUND(123.4567, 2) FROM DUAL; -- 返回 123.46 -- 截断数值,保留1位小数 SELECT TRUNC(123.4567, 1) FROM DUAL; -- 返回 123.4 -- 取余数 SELECT MOD(10, 3) FROM DUAL; -- 返回 1 -- 绝对值 SELECT ABS(-123) FROM DUAL; -- 返回 123 -- 向上取整 SELECT CEIL(123.1) FROM DUAL; -- 返回 124 -- 向下取整 SELECT FLOOR(123.9) FROM DUAL; -- 返回 123
三、日期函数
日期函数用于处理DATE和TIMESTAMP类型的数据,Oracle 11G中常用的日期函数包括:
- SYSDATE:返回当前数据库服务器的日期和时间
- ADD_MONTHS:给日期加上指定的月数
- MONTHS_BETWEEN:返回两个日期之间相差的月数
- EXTRACT:从日期中提取指定的部分(年、月、日等)
- TO_DATE:将字符串转为日期类型,属于转换函数,常和日期操作配合使用
日期函数使用示例:
-- 获取当前日期
SELECT SYSDATE FROM DUAL;
-- 当前日期加3个月
SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL;
-- 计算两个日期相差的月数
SELECT MONTHS_BETWEEN(TO_DATE('2024-05-01', 'YYYY-MM-DD'), TO_DATE('2024-02-01', 'YYYY-MM-DD')) FROM DUAL; -- 返回 3
-- 提取当前日期的年份
SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;
-- 字符串转日期
SELECT TO_DATE('2024-03-15', 'YYYY-MM-DD') FROM DUAL;四、聚合函数
聚合函数用于对一组数据进行统计计算,通常和GROUP BY子句配合使用:
- COUNT:统计行数
- SUM:计算数值列的总和
- AVG:计算数值列的平均值
- MAX/MIN:返回列的最大值/最小值
假设存在员工表emp,包含sal(工资)、deptno(部门编号)字段,聚合函数使用示例:
-- 统计员工总数 SELECT COUNT(*) FROM emp; -- 统计每个部门的员工数量 SELECT deptno, COUNT(*) FROM emp GROUP BY deptno; -- 计算每个部门的平均工资 SELECT deptno, AVG(sal) FROM emp GROUP BY deptno; -- 查询全公司的最高工资 SELECT MAX(sal) FROM emp;
五、使用注意事项
在使用Oracle 11G函数时需要注意以下几点:
- 函数的参数类型需要和函数要求匹配,否则会报类型转换错误
- 对NULL值的处理:大部分聚合函数会忽略NULL值,除了COUNT(*)会统计所有行
- 日期函数的参数如果是字符串,需要保证格式和数据库默认的日期格式一致,或者使用TO_DATE显式转换
- 字符函数的索引从1开始,和很多编程语言从0开始不同,使用时需要注意
掌握以上这些常用函数,基本可以覆盖大部分日常Oracle 11G的开发和查询场景,遇到更复杂的处理需求时,也可以结合多个函数嵌套使用实现对应逻辑。
Oracle_11GSQL函数数据库查询PL_SQL函数用法修改时间:2026-06-06 22:20:29