包头包体oracle,oracle package包头和package body包体例子

程序包

1作用是为了实程序模块化

2程序包里面可以包含存储过程,函数,变量,游标等PL/SQL程序

3程序包类似java的jar包,存储过程,函数,变量,游标等相当jar包提供的方法

4调用程序包里面的存储过程,函数等元素时,oracle会把程序包调入内存,下次是使用,直接从内存读取。

那么这些项目属于私有项目,只能在包体中使用.

一 包的组成

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

包主体(package body):包主体则是包定义部分的具体实现,它负责为包头中所声明子程序提供具体的实现,在包主体中还可以声明包的私有元素。

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

二 包的语法规则

包头的语法如下:

create or replace package 包名

As | IS

procedure 过程名();

Function 函数名() return 数据类型;

变量定义;

异常定义;

光标定义;

...........

...........

End 包名;

包体创建的语法:

create or replace Package Body 包名

As | IS

Procedure 过程定义;

Procedure 过程定义;

Function 函数定义;

Function 函数定义;

.........;

end 包名;

包的开发步骤

与开发存储过程类似,包的开发需要几个步骤:

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

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

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

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

5. 使用SQLPLUS或开发工具进行调式。

加密实用程序

ORACLE 提供了一个实用工具来加密或者包装用户的PL/SQL,它会将用户的PL/SQL改变为只有ORACLE能够解释的代码版本.

WRAP 实用工具位于$ORACLE_HOME/BIN.

格式为:

WRAP INAME= [ONAME=]

wrap iname=e:\sample.txt

注意:在加密前,请将PL/SQL程序先保存一份,以备后用。

可以使用 DROP PACKAGE 命令对不需要的包进行删除,语法如下:

DROP PACKAGE [BODY] [user.]package_name;

包与过程、函数一样,也是存储在数据库中的,可以随时查看其源码。若有需要,在创建包时可以随时查看更详细的编译错误。不需要的包也可以删除。

同样,为了避免调用的失败,在更新表的结构后,一定要记得重新编译依赖于它的程序包。在更新了包说明或包体后,也应该重新编译包说明与包体。语法如下:

ALTER PACKAGE package_name COMPILE [PACKAGE|BODY|SPECIFICATION];

也可以通过以下数据字典视图查看包的相关。

DBA_SOURCE, USER_SOURCE, USER_ERRORS,DBA-OBJECTS

如,我们可以用:select text from user_source wherename='DEMO_PKG1';来查看我们创建的包的源码。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值