Oracle --包

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




转载于:https://my.oschina.net/u/2312022/blog/490717

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值