某某茶叶有限公司欢迎您!
金沙棋牌在线 > 服务器&运维 > Oracle中存储过程与函数的区别

Oracle中存储过程与函数的区别

时间:2020-01-16 19:33

Oracle过程和函数相信大家都比较了解,下面就为您详细介绍Oracle过程和函数二者之间的区别,希望可以让您对Oracle过程和函数有更深的认识。

 Oracle 获取信息一般用function 修改数据用存储过程(需要执行commit命令)

转载:blog.csdn.net/funnyfu0101/article/details/53246838

Oracle过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区别不在于返回值,而在于他们的调用方式。Oracle过程是作为一个独立执行语句调用的:

图片 1

1、返回值的区别

pay_involume(invoice_nbr,30,due_date);

//调用存储过程  
    call add_emailinfo('cherry','asdfsdf');  
//调用函数  
    select sel_emailinfo('bbb') from dual; 

函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有

函数以合法的表达式的方式调用:

 

2. 调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用.

order_volumn:=open_orders(SYSDATE,30);

函数(方法)必须要有返回值,DAL返回参数不可缺少。

函数:一般情况下是用来计算并返回一个计算结果;

创建过程的语法如下:

FUNCTION fn_getqdapprechargeorder_byid (
  invarorderid       IN       VARCHAR2,
  invarcommorderid   IN       VARCHAR2,
  outcurlist         OUT      ref_cursor
)
  RETURN INTEGER  //必须有返回值 确定返回值类型
IS
BEGIN
  OPEN outcurlist FOR
     SELECT t.*
       FROM tbqdapprechargeinfo t
      WHERE t.orderid = invarorderid OR t.commorderid = invarcommorderid;
  RETURN 0;
END;

存储过程: 一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等)