码迷,mamicode.com
首页 > 数据库 > 详细

Oracle --包

时间:2015-08-11 16:29:08      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

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

与类一样,包中的程序元素分为公用元素和私用元素。公用元素可以被包中的函数、过程调用,也可以被包外的pl/sql程序访问;而私有元素只能被包内的函数和过程访问。

在pl/sql程序设计中,使用包可以提高程序的执行效率。因为程序首次调用包内函数或过程时,oracle需要将整个包调入内存;当再次访问包内元素时,oracle直接从内存中读取,而不需要进行磁盘i/o操作,从而提高程序的执行效率。

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

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

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

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

2. 包的定义

create or replace package demo_pakage is

--公有数据类型定义

--公有游标声明

--公有变量声明

--公有子程序声明

end demo_pakage;

create or replace package demo_package is
      
       --公有变量       
       v_consump t_consumption%rowtype;
       --子程序函数
       function getallsalary(cstmId number)
         return number;
       --子程序存储过程
       procedure sp_checkaccount(account in char,errNo out integer);
         
end demo_package;

3.子程序重载

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




Oracle --包

标签:

原文地址:http://my.oschina.net/u/2312022/blog/490717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!