Oracle --包

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

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

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

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

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

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

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

2. 包的定义内存

create or replace package demo_pakage isget

--公有数据类型定义io

--公有游标声明

--公有变量声明

--公有子程序声明

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容许对包内子程序和本地子程序进行重载。所谓重载是指两个或多个子程序具备相同的名称,但拥有不一样的参数变量、参数顺序或参数数据类型。

相关文章
相关标签/搜索