程序包 :程序包

更新时间:2024-09-21 00:09

表示嵌入或链接信息的图标。此信息可以包含整个文件(如位图文件)或部分文件(如电子表格中的某个单元)。当选择此数据包时,用于创建对象的应用程序将播放对象(如声音文件)或者打开并显示对象。如果更改原始信息,链接的信息将自动更新。但必须手动更新嵌入信息。

概述

可以利用包(package)将过程和函数安排在逻辑分组中。包含有两个分离的部件;包说明(规范、包头市)和包体(主体)。包说明和包体都存储在数据字典中。包与过程和函数的一个明显的区别时,包仅能存储在非本地的数据库中。除了允许相关的对象结合为组之外,包与依赖性较强的存储子程序相比其所受的限制较少。除此之外,包的效率比较高。

从本质上讲,包是一个命名的声明部分。任何可以显示在块声明中的语句都可以在包中使用,这些语句包括过程、函数、游标、类型和变量。把上述内容放入包中的好处是,用户可以从其他PL/SQL块中对其进行引用,包为PL/SQL语言提供了全程变量。

创建程序包

包的创建分为包头市的创建和包体的创建两部分。

(1)包头。创建包头的语法格式为:

CREATE OR REPLACE PACKAGE [Schema]package_name /*包头名称*/

IS | AS pl/sql_package_spec /*定义过程、函数等*/

其中:

schema:指定将要创建的包所属用户方案。

Package_name:将要创建的包的名称。

Pl/SQL_package_spec:变量、常量及数据类型定义;游标定义;函数、过程定义和参数列表返回类型。

(2)创建包体的语法格式为:

CREATE OR REPLACE PACKAGE BODY[Schema]package_name

IS | AS pl/sql_package_body

其中:

schema:指定将要创建的包所属用户方案。

Pl/sql_package_body:游标、函数、过程的具体定义。

包体是一个独立于包头市的数据字典对象。包体只能在包头完成编译 后才能进行编译。包体中带有实现包头中描述的前向子程序的代码 段。除此之外,包体还可以包括具有包体全局属性的附加声明部 分,但这些附加说明对于说明部分是不可见的。

包的应用

调用包

在创建了包说明和相应的包体之后,就可以调用该包的各个组件了。对包内公有组件的调用格式要用到包名并加“.”作为限定词,即包名。组件名称。

包的重载

在包的内部,过程和函数可以重载。可以有名称相同的对象。

删除包

当不在需要某个程序包时,可以将其删除。如果只删除包体,可以使用命令:

DROP PACKAGE BODY package_name;

如果要同时删除包头市,可以使用命令:

DROP PACKAGE package_name;

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: