博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle --包
阅读量:6341 次
发布时间:2019-06-22

本文共 928 字,大约阅读时间需要 3 分钟。

hot3.png

包是一组相关过程、函数、变量、常量和游标等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

你可能感兴趣的文章
varchar和Nvarchar区别 ----转载
查看>>
【Java开发技术之程序测试】Junit4 新功能学习总结
查看>>
用delphi6+Apache 开发动态网站(创建一个简单的网页)
查看>>
10个工具让你的shell脚本更强大
查看>>
python的类方法和类的静态方法
查看>>
缓存机制
查看>>
按照经纬度实现位置计算
查看>>
mysql锁表和解锁语句分享
查看>>
android调用js
查看>>
字符编码笔记:ASCII,Unicode和UTF-8
查看>>
系统进化树-原理介绍及软件使用
查看>>
通知和消息有什么区别?(转)
查看>>
IC卡的传输协议(2)-块传输协议T=1【转】
查看>>
Android实现网络多线程文件下载
查看>>
http协议(六)报文首部
查看>>
【CodeForces 697B】Barnicle
查看>>
【自动部署】Ansible 怎么通过堡垒机/跳板机 访问目标机器
查看>>
git format-patch 用法
查看>>
hdu 1711 Number Sequence KMP 基础题
查看>>
Yandex.Algorithm 2011 A. Double Cola
查看>>