Oracle pl/sql学习 之 子程序 过程和函数 存储过程 存储函数

PL/SQL子程序 分为 过程,方法等。他们的创建是放在缓冲区的,所以定义,执行后不能得到保存,重复使用。这样就为什么会有了存储过程 和 存储函数了。这两种今后学习。恩,™是进过编译后存放在工作区的。额,继续过程 和 方法。

一如既往,首先来看他们的定义

过程

函数

  procedure  过程名(参数1,参数2.....)

is

  变量声明

begin

可执行部分

exception

异常处理部分

end;

 

  function 函数名(参数1,参数2.....)return 数据类型

is

  变量声明

begin

可执行部分

return语句。

exception

异常处理部分

end;

从上面可以看出他们至少有三个区别:

1. 关键字不同  过程为 procedure 函数为 function ,废话,但是procedure会写嚒,罗嗦

2.函数是可以有返回值的,注意到了嚒,return 数据类型。

3.正因为第二点,才有了第三点,函数在可执行部分至少有一条return 语句。

如何使用,结合PL/SQL程序块执行模式:

declare

 ......

begin

.......

end;

将上面定义放到declare部分,就可以用起来了。为什么不赶紧试试。

码农们更多的使用到的可能是 存储型的 过程和函数吧。那不妨接下来讲讲他们?

上面提到存储过程和存储函数他们是在创建后,经过系统编译存放在oracle数据库工作区中的,所以一次编译,随时运行。在建立之后就能随时调用了,当然你必须得保证编译通过了。也正是这个原因,所以存储过程函数一旦新建后,不能修改,那怎么做呢,只能删掉重新建立了呗。

存储过程的部分有三:一声明部分、二执行部分、三异常处理部分(面试官最喜欢问的)

create or replace procedure  存储过程名(参数1,参数2......) 

[authid current_user|definer]  --访问控制, 选择有二,当前用户 和所有用户

as                                           -- as  和游标进行区别 is

 声明部分;

begin

执行部分;

exception

异常部分;

end;

来点DBA知识,偷笑

A 授权 用户执行:grant  execute on 存储过程名 to 用户名;

B 执行存储过程:execute 过程名(实际参数);

C 删除过程: drop 存储过程名;

存储函数 类似,他们不同点,能够想到吧,想想子程序 过程和函数区别。

create or replace function  存储函数名(参数1,参数2......)   return 返回值

[authid current_user|definer]  --访问控制, 选择有二,当前用户 和所有用户

as                                           -- as  和游标进行区别 is

声明部分;

begin

执行部分;

return 表达式;

exception

异常部分;

end;

看出来不同点了吧,看出来了吧。不说了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值