第8 章存储过程 8
1 存储过程和函数 8
1 存储过程和函数 8
1 认识存储过程和函数 存储过程和函数也是一种PL/SQL 块, 是存入数据库的 PL/SQL块
但存储过程和函数不同于已经介绍过的PL/SQL程 序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以 命名的方式存储于数据库中的
和PL/SQL程序相比,存储过程有 很多优点,具体归纳如下: * 存储过程和函数以命名的数据库对象形式存储于数据库当 中
存储在数据库中的优点是很明显的,因为代码不保存在本 地,用户可以在任何客户机上登录到数据库,并调用或修改代码
* 存储过程和函数可由数据库提供安全保证,要想使用存储 过程和函数,需要有存储过程和函数的所有者的授权,只有被授 权的用户或创建者本身才能执行存储过程或调用函数
* 存储过程和函数的信息是写入数据字典的,所以存储过程 可以看作是一个公用模块,用户编写的PL/SQL程序或其他存储过 程都可以调用它(但存储过程和函数不能调用PL/SQL程序)
一个 重复使用的功能,可以设计成为存储过程,比如:显示一张工资 统计表,可以设计成为存储过程;一个经常调用的计算,可以设 计成为存储函数;根据雇员编号返回雇员的姓名,可以设计成存 储函数
* 像其他高级语言的过程和函数一样,可以传递参数给存储 过程或函数,参数的传递也有多种方式
存储过程可以有返回 值,也可以没有返回值,存储过程的返回值必须通过参数带回; 函数有一定的数据类型,像其他的标准函数一样,我们可以通过 对函数名的调用返回函数值
存储过程和函数需要进行编译,以排除语法错误,只有编 译通过才能调用
2 创建和删除存储过程 创建存储过程,需要有CREATE PROCEDURE或CREATE ANY PROCEDURE的系统权限
该权限可由系统管理员授予
创 建一个存储过程的基本