Oracle数据库学习12之函数

来源:互联网 发布:mac死机怎么办 编辑:程序博客网 时间:2024/06/10 23:01

函数

过程是为了完成一定的任务而组合在一起的SQL或PL/SQL语句集。
函数最终任务是返回一个值。


1.函数的定义:与过程的定义基本相似,
create or replace procedure 函数名[(参数1[in|out|in out] 参数类型,参数2,...)] return 返回类型 is|as 主体部分
若返回值与返回类型不一致,则出错。


2.return语句:
在函数中可有多个return,但只会有一个被执行,当return之后则函数结束。
在过程中也可使用return,不需要带返回值。out或in out参数的当前值会自动返回


一般的,需要返回多个值或只需要执行语句的,用过程。需要执行语句且返回值的,用函数。


3.调用函数:调用过程相同。


4.删除函数或过程:
drop function 名字

删除之后不能恢复,只能通过create or replace重新创建编译。


Oracle内置函数



1.数值函数:
ABS 返回绝对值
ACOS 返回以弧度为单位的反余弦值
ASIN 返回以弧度为单位的反正弦值
ATAN(m) 返回m的反正切值(以弧度为单位),即:返回arctan(m)
ATAN(m,n) 返回m与n的反正切值(以弧度为单位),即:返回arctan(m/n)


2.字符函数:
concat 连接两个指定的字符(与||作用相同)
initcap 返回指定的字符串并且单词的第一个字母大写。
instr(x,y) 返回y在x中的位置,没有则为0
length(x) 返回字符串长度,包括填充的字符。未知则返回null
lower 转换为小写字母
lpad(x,i,y) 用字符串y按指定的填充数填充x字符串的左边
upper 转换为大写字母



3.转换函数


to_char 将date、mlslabel、number转换为varchar2字符串。在转换日期时要注意括号第一个参数是日期,第二个是转换成的格式,yyyy代表4位的年,yy代表4位年的后两位,mm代表月,dd代表日


to_number 将char和varchar2字符串转换为number


to_date('日期格式的数字','yyyy.mm.yy')将char和varchar2字符串转换为日期值。如:to_date('2014.9.25','yyyy.mm.dd')
to_date中日期格式的数字,年月日之间一定要有分隔,以及后面的格式也要有分隔,两者的分隔符可以不同


4.日期函数
add_months 给指定的日期加上若干个月
current_date 返回当前会话期时区内的日期
current_timestamp返回当前会话期时区内的日期和时间
last_day 返回指定月的最后一天
sysdate 返回系统当前的日期和时间
trunc(date,fornat)将date按照format指定的格式进行截断


5.分组函数
分组函数是返回基于多行的单一的结果,可接受参数的修饰符。
常用的修饰符:all、distinct。
all:可得到查询返回的所有的数值,默认为all


avg 返回各列的平均值
count 返回查询的行的数目
glb 返回mslabel的最大下界
lub 返回mslabel的最小上界
max 返回查询列中的最大值
min 返回查询列中的最小值
stddev 返回查询列的平均偏差
sum 返回查询列的总和
variance 返回查询列的统计误差


0 0