首页  >  文章  >  什么是oracle函数

什么是oracle函数

DDD
DDD原创
2023-06-06 10:15:021327浏览

oracle函数是PL/SQL子程序,作为数据库对象存储在oracle数据库中,会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值,通常用于返回特定的数据,oracle函数可分为系统函数和用户自定义函数两类。

什么是oracle函数

本教程操作环境:Windows10系统、Oracle 19c版本、Dell G3电脑。

Oracle函数的定义

函数是作为数据库对象存储在oracle数据库中,函数又被称为PL/SQL子程序。

函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。通常用于返回特定的数据。

oracle函数可分为两类:系统函数和用户自定义函数。

ORACLE函数之单行函数

  • 不改变真实数据,只对数据做进一步修饰或处理显示
  • 可和字段混合使用

    伪表:真实存在的表,方便进行数据验证而临时存在;表名:dual

1.字符函数

函数名 作用 示例 结果
initcap(char) 首字母大写 initcap('nice') Nice
lower(char) 转为小写 lower('NICE') nice
upper(char) 转为大写 upper('nice') NICE
ltrim(char,set) 左剪 ltrim('nice','ni') ce
rtrim(char,set) 右剪 rtrim('nice','e') nic
concat(char1,char2) 字符串连接 concat('ni','ce') nice
substr(char,pos,len) 取子串 substr('nice',2,2) ic
instr(char,substr) 查子串位置 instr('nice','c') 3
translate(char,key,value) 按字符映射翻译 translate('nice','ne','01') 0ic1
replace(char,old,new) 字符串替换 replace('nice','c','cc') nicce

2.数值函数

函数名 作用 示例 结果
abs(n) 取绝对值 abs(-3) 3
mod(m,n) 取余 mod(3,2) 1
sign(n) 取符号 sign(-3) -1
ceil(n) 向上取整 ceil(3.2) 4
floor(n) 向下取整 floor(3.2) 3
round(m,n) 四舍五入为指定小数位数 round(3.236,2) 3.24
power(m,n) m的n次幂 power(3,2) 9
sqrt(n) 平方根 sqrt(4) 2
trunc(m,n) 截断 trunc(3.233,2) 3.23
sin(n) 正弦 sin(0) 0
cos(n) 余弦 cos(0) 1

3.日期函数

函数名 作用 示例 结果
months_between(date1,date2) 返回两日期间的月份(若date1在日历中比date2早,则返回一个负数,反之则返回一个正数) months_between('01-8月-2020',‘01-8月-2020’) 0
add_months(date,m) 返回把月份数加到日期上的新日期 add_months('25-8月-2020',-1) 25-7月-2020
next_day(date,week) 返回指定新日期后的星期对应的新日期 next_day('23-8月-2020',‘星期一') 24-8月-2020
last_day(date) 返回指定日期所在月的最后一天 last_day('25-8月-2020') 31-8月-2020
round(date,p) 按指定格式对日期进行四舍五入 round(to_date('25-8月-2020'),’YEAR‘) 1-1月-2021
trunc(date,p) 对日期按指定方式截断 trunc(to_date('25-8  月-2020'),'YEAR') 01-1月-2020

注:

  • p为YEAR,round按1-6月和7-12月,四舍五入到最近的yyyy年1月;trunc截取到本年第一天。
  • p为MONTH,round按1-15日和16-30日,四舍五入到最近mm月的1日;trunc截取到本月第一天。
  • p为DAY,round按周一至周三和周四至周日,四舍五入到最近的周日。trunc截取到本周第一天。

oracle函数之多行函数

  • 对查询数据进行统计
  • 不能和普通字段及单行函数混合使用,除非分组

    函数名 作用
    max(字段名) 返回该字段最大值
    min(字段名) 返回该字段最小值
    sum(字段名) 返回该字段的和
    avg(字段名) 返回该字段平均值
    count(*) 返回表记录数
    count(字段名) 返回非空值数量
    count(distinct 字段名) 返回去重后字段值数量

oracle函数之转换函数

  • to_number(数值类型的字符):将字符转换为数值

  • to_char(数值或日期):将数值或日期转换为字符

    指定显示格式:

    9表示占位,例:999,999,999会将数字按三个一组逗号隔开。

    0表示占位,若实际数据位数不足,则用0补位。

    L表示人民币符号,$表示美元符号。

    注:数值和字符之间可隐式转换。

  • to_date(日期格式的字符):将字符转换为日期(一般新增使用,查询用to_char)

    常用日期格式:yyyy-mm-dd

    yyyy/mm/dd

    'yyyy"年"mm"月"dd"日"'

    注:字符必须符合日期格式;oracle默认转换格式为日月年,例'25-8月-2020'。

oracle函数之其他函数

  • nvl(字段名,新的值):若字段值不为null,则返回该字段值;若为null,则返回新的值。

  • nvl2(字段名,处理1,处理2):若字段值不为null,则执行处理1;若为null,则执行处理2。

  • decode(字段名,值1,处理1,值2,处理2,值3,处理3,...,公共处理):若字段值和decode中条件值相同,则执行对应的处理。若都没有,则执行公共处理。

以上是什么是oracle函数的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn