1一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
2对于存储过程来说可以返回参数,而函数只能返回值或者表对象。
3存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。
4当存储过程和函数被执行的时候,SQL Manager会到procedure cache中去取相应的查询语句,如果在procedure cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。
NVL(exp1,exp2),如果exp1的计算结果为null值,则NVL()返回zhidaoexp2。如果exp1的计算结果不版是null值,则返回exp1。
使用样例如下:
1、创建测试表,
create
table
test_nvl(value
varchar2(50));
2、插入测试数据
insert
into
test_nvl
values('123');
insert
into
test_nvl
values('456');
insert
into
test_nvl
values('');
insert
into
test_nvl
values('666');
insert
into
test_nvl
values('111');
commit;
3、查询表中全量数据,select
t,
rowid
from
test_nvl
t;
4、编写sql,使用nvl函数,可以发现空值权转为了1;
select
t,
nvl(value,1)
value2
from
test_nvl
t;
1单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结果,比如:MOD(x,y)返回x除以y的余数(x和y可以是两个整数,也可以是表中的整数列)。常用的单行函数有:
字符函数:对字符串 *** 作。
数字函数:对数字进行计算,返回一个数字。
转换函数:可以将一种数据类型转换为另外一种数据类型。
日期函数:对日期和时间进行处理。
2聚合函数:聚合函数同时可以对多行数据进行 *** 作,并返回一个结果。比如SUM(x)返回结果集中x列的总和。
因数据库不同有不同的函数,以oracle为例:常用的有单条语句作用的函数:destinct(去除重复行),to_char(转换自符串),to_date(日期格式函数),sumstr(截取自符串),lower(将字母转换为小写),upper(将字母转换为小写),char(将数字转换为字符),ascii(求字符的ascii码)等函数;
组函数:min(求最小值),max(求最大值),avg(求平均数),sum(求总和),counnt(统计记录数);
常用的看你使用程度了\x0d\\x0d\常用的有日期处理函数(month_between,add_months,next_day,extract)\x0d\转换函数(to_number,to_char,to_date)\x0d\字符处理函数(substr,replace,trim,upper,lower,concat,instr)\x0d\数学函数(我基本没用过,所以无法提供 rondom,trunc)\x0d\逻辑函数(coalesce,nvl)\x0d\聚集函数(sum,avg,max,min)
以上就是关于数据库存储过程和函数的区别全部的内容,包括:数据库存储过程和函数的区别、在oracle数据库中nvl()是什么函数、oracle数据库哪些函数(oracle数据库功能介绍)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)