plsql包的建立和应用

来源:互联网 发布:apache 压缩配置 编辑:程序博客网 时间:2024/06/16 13:10

包是一组相关的过程、函数、变量、常量、游标等pl/sql程序设计元素的组合。

它具有面向对象程序的语言特点,是对这些pl/sql程序设计元素的封装。包类似于java中的类,其中的变量相当于类中的成员变量,过程和函数相当于类方法。把相关的模块归类成为包,可使开发人员利用面向对象的方法进行存储过程的开发,从而提高系统的性能。

与类相似,包中的程序元素也分为公用元素私有元素两种,这两种元素的区别是他们允许访问的程序范围不同,即他们的作用域不同。公用元素不仅可以被包中的函数、过程调用,也可以被包外的pl/sql程序访问,而私有元素只能被包内的函数和过程访问。

在pl/sql程序设计中,使用包不仅可以是程序设计模块化,对外隐藏包内所使用的信息(通过使用私用变量),而且可以提高程序的执行效率。因为,当程序首次调用包内函数或过程时,oracle将整个包调入内存,当再次访问包内元素师,oracle直接从内存中读取,而不需要进行磁盘I/O操作,从而使程序的执行效率得到提高。

 

一个包由两个分开的部分组成:

包定义(package):包定义部分声明包内数据类型、变量、常量、游标、子程序和异常错误处理等元素,这些元素为包的公有元素。

包主体(package body):包主体则是包定义部分的具体实现,它定义了包定义部分所声明的游标和子程序,在包主体中还可以声明包的私有元素。

包定义和包主体分开编译,并作为两部分分开的对象存放在数据库字典中。

1.将每个存储过程调试正确

2.用文本编辑软件将各个存储过程和函数集成在一起

3.按照包的定义要求将集成的文本的前面加上包定义

4.按照包的定义要求将集成的文本前面加上包的主体

5.使用开发工具进行调试

 

pl/sql 允许对包内子程序和本地子程序进行重载。所谓重载时指两个或多个子程序有相同的名称,但拥有不同的参数变量、参数顺序或参数数据类型

 

create or replace package demo_package

is

v_id number;

v_name varchar2(24);

function query_users(userId in varchar2);

return integer;

 

 

 

0 0
原创粉丝点击