oracle中存储函数与存储过程的区别介绍

作者:Jamyson 时间:2023-07-12 23:40:15 

在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,可是也有它们的不同之处,这段时间刚学完函数与存储过程,来给自己做一个总结:

一:存储过程:简单来说就是有名字的pl/sql块。

语法结构: 


create or replace 存储过程名(参数列表)
 is
  --定义变量
 begin
  --pl/sql
 end;

    案例:         


create or replace procedure add_(a int,b int)
 is
  c int;
 begin
  c:=a+b;
  dbms_output.put_line(c);
 end;

    调用存储过程


declare
 begin
  add_(12,34);
 end;

存储过程的三种类型参数:

输入参数(默认) in

输出参数 out

输入输出参数 in out

函数定义

        语法结构:         


create or replace function 函数名(参数列表) return 类型
  is
  begin
  end;

        案例:         


create or replace function f1(n1 dec,n2 dec) return dec
  is
   r dec(19,2);
  begin
   r:=n1/n2;
   return r;
  exception
   when zero_divide then
    dbms_output.put_line('除数不能为0');
    return 0;
  end;

存储过程与存储函数的区别和联系:

相同点:1.创建语法结构相似,都可以携带多个传入参数和传出参数;

2.都是一次编译,多次运行;

不同点:1.存储过程定义关键字用procedure,函数定义用function;

2.存储过程中不能用return返回值,但函数中可以,而且函数中必须有return返回;

3.执行方式略有不同,存储过程的执行方式有两种(1.使用execute;2.使用begin和end)函数除了

存储过程的两种方式,还可以当做表达试使用,例如放在select中(select f1() from dual;)

总结:如果只有一个返回值,用存储函数,否则,一般用存储过程

以上所述是小编给大家介绍的oracle中存储函数与存储过程的区别介绍,希望对大家有所帮助

来源:http://blog.csdn.net/heligui/article/details/78315800

标签:oracle,存储过程,存储函数
0
投稿

猜你喜欢

  • Yahoo!网站性能最佳体验的34条黄金守则—内容

    2008-05-13 12:14:00
  • torch.optim优化算法理解之optim.Adam()解读

    2023-06-24 23:30:25
  • Python实现将SQLite中的数据直接输出为CVS的方法示例

    2022-10-01 00:05:32
  • 详解vue事件对象、冒泡、阻止默认行为

    2024-04-28 09:26:19
  • js计算精度问题小结

    2024-04-10 13:55:24
  • 查询SQL Server Index上次Rebuild时间的方法

    2024-01-14 11:31:23
  • Python实现一个转存纯真IP数据库的脚本分享

    2024-01-17 16:43:38
  • vue3获取当前路由地址

    2024-05-09 15:13:36
  • layui 富文本图片上传接口与普通按钮 文件上传接口的例子

    2024-05-22 10:36:28
  • python控制台打印log输出重复的解决方法

    2021-02-23 04:05:17
  • python 解决flask 图片在线浏览或者直接下载的问题

    2022-05-15 06:24:57
  • 35个JS中实用工具函数的代码分享

    2024-05-03 15:08:25
  • SQL左连接和右连接原理及实例解析

    2024-01-21 20:35:39
  • python datetime中strptime用法详解

    2022-03-08 19:31:48
  • python使用psutil模块获取系统状态

    2021-12-13 23:36:10
  • Python cookbook(数据结构与算法)将名称映射到序列元素中的方法

    2021-06-06 01:26:54
  • JavaScript设计模式之适配器模式介绍

    2023-08-12 06:36:09
  • Dreamweaver定义本地站点

    2010-07-02 16:27:00
  • PHP下常用正则表达式整理

    2023-11-18 03:04:48
  • vue使用微信JS-SDK实现分享功能

    2023-07-02 16:59:46
  • asp之家 网络编程 m.aspxhome.com