当前位置: 代码迷 >> SQL >> PL_SQL程序封装
  详细解决方案

PL_SQL程序封装

热度:17   发布时间:2016-05-05 14:36:11.0
PL_SQL程序打包

PL/SQL 可以让我们把逻辑相关的类型、变量、游标和子程序放在一个包内,这样更
加清楚易理解。包通常有两部分组成:包说明部分和包体部分。包说明部分是应用程序的接
口,它"声明"了类型、常量、变量、异常、游标和可以使用的子程序。包体用于实现包说明
部分声明的子程序和游标。
下面的例子是把两个雇用相关的过程进行打包:

CREATE PACKAGE emp_actions AS -- package specification
PROCEDURE hire_employee(empno NUMBER, ename CHAR, ...);
PROCEDURE fire_employee(emp_id NUMBER);
END emp_actions;
CREATE PACKAGE BODY emp_actions AS -- package body
PROCEDURE hire_employee(empno NUMBER, ename CHAR, ...); IS
BEGIN
INSERT INTO emp
VALUES (empno, ename, ...);
END hire_employee;
PROCEDURE fire_employee(emp_id NUMBER) IS
BEGIN
DELETE FROM emp
WHERE empno = emp_id;
END fire_employee;
END emp_actions;
只有在包说明中声明的内容对应用程序是可见的,而包体中的内容是不可见,无法访
问的。包被编译后会存放到数据库中,当我们首次调用包中的子程序时,整个包就会被加载
到内存当中,所以,后续的调用不再涉及到磁盘的读取问题。因此,包可以提高效率改善性
能。

  相关解决方案