已解决提问者:9516203_081 - 大副 十二级

oracle中 procedure和function有何本质区别?

悬赏分:30 解决时间:2008-09-11 03:25

postgresql中
是只有fuction
没有procedure的
不知两者有何区别?
procedure的那些作用,是function永远无法做到的?

最佳答案

yueyangyx_556 - 二副 十一级

1、标识符不同。函数的标识符为FUNCTION,过程为:PROCEDURE。
2、函数中一般不用变量形参,用函数名直接返回函数值;而过程如有返回值,则必须用变量形参返回。
3、过程无类型,不能给过程名赋值;函数有类型,最终要将函数值传送给函数名。
4、函数在定义时一定要进行函数的类型说明,过程则不进行过程的类型说明。
5、调用方式不同。函数的调用出现在表达式中,过程调用,由独立的过程调用语句来完成。
6、过程一般会被设计成求若干个运算结果,完成一系列的数据处理,或与计算无关的各种操作;而函数往往只为了求得一个函数值

09-11 03:25回答采纳率达:22%(501个被采纳)

评价已经被关闭 目前有 0 个人评论

不好

0% (0)0% (0)

其它回答 (共1条)

zgtlk11_728 - 二副 十一级

function 可以使用在表达式中 x := func();procedure不能
function 可以做为表达式 select func() from dual;procedure 不能
function 不能BEGIN func();END;;procedure 可以

09-11 03:25 回答采纳率达:23%(512个被采纳)