Oracle pl/sql学习 之 子程序 过程和函数 存储过程 存储函数
2012-11-22 22:20
706 查看
PL/SQL子程序 分为 过程,方法等。他们的创建是放在缓冲区的,所以定义,执行后不能得到保存,重复使用。这样就为什么会有了存储过程 和 存储函数了。这两种今后学习。恩,™是进过编译后存放在工作区的。额,继续过程 和 方法。
一如既往,首先来看他们的定义
从上面可以看出他们至少有三个区别:
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;
看出来不同点了吧,看出来了吧。不说了。
一如既往,首先来看他们的定义
过程 | 函数 |
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;
看出来不同点了吧,看出来了吧。不说了。
相关文章推荐
- 开发PL/SQl的子程序和包 存储过程和函数
- 【传智播客郑州校区】Java,PL/SQL调用 ORACLE存储函数以及存储过程
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- Oracle 编写存储过程,在pl/sql中调用编写好的存储过程例子
- 使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码
- Java,PL/SQL调用 ORACLE存储函数以及存储过程
- ORACLE常用SQL、存储过程和函数
- Oracle 笔记(八)、PL/SQL 高级应用(游标、存储过程、函数、程序包)
- 在PL/SQL 开发中调试存储过程和函数的一般性方法
- 在 PL/SQL 中调用存储过程 oracle
- oracle pl/sql中 执行带 OUT 的存储过程
- PL/SQL中的存储过程与函数
- 106---oracle的PL/SQL,异常处理, 游标(CURSOR), 子程序,存储过程
- Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)
- PL/SQL学习笔记_03_存储函数与存储过程
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
- SQL2000系统表、存储过程、函数的功能介绍及应用2009年01月21日 星期三 11:38虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据信息,但是对于某些特殊的元数据信息,我们仍然需要直接对系统表进行查询。因为SQL
- ORACLE 存储过程及TABLE里的数据用PL/SQL备份及用PLUS SQL还原
- ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)
- Oracle 存储过程和存储函数学习笔记