什么是oracle函数

编辑: admin 分类: 电脑知识 发布时间: 2023-06-11 来源:互联网

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

什么是oracle函数

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

Oracle函数的定义

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

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

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

ORACLE函数之单行函数

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

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

1.字符函数

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

2.数值函数

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

3.日期函数

函数名作用示例结果months_between(date1,date2)返回两日期间的月份(若date1在日历中比date2早,则返回一个负数,反之则返回一个正数)months_between('01-8月-2020',‘01-8月-2020’)0add_months(date,m)返回把月份数加到日期上的新日期add_months('25-8月-2020',-1)25-7月-2020next_day(date,week)返回指定新日期后的星期对应的新日期next_day('23-8月-2020',‘星期一')24-8月-2020last_day(date)返回指定日期所在月的最后一天last_day('25-8月-2020')31-8月-2020round(date,p)按指定格式对日期进行四舍五入round(to_date('25-8月-2020'),’YEAR‘)1-1月-2021trunc(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中条件值相同,则执行对应的处理。若都没有,则执行公共处理。

【文章转自荷兰服务器 http://www.558idc.com/helan.html 欢迎留下您的宝贵建议】