程序包
嵌入或链接信息的图标
表示嵌入或链接信息的图标。此信息可以包含整个文件(如位图文件)或部分文件(如电子表格中的某个单元)。当选择此数据包时,用于创建对象的应用程序将播放对象(如声音文件)或者打开并显示对象。如果更改原始信息,链接的信息将自动更新。但必须手动更新嵌入信息。
内容简介
可以利用包(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;
参考资料
最新修订时间:2024-05-21 11:56
目录
概述
内容简介
创建程序包
参考资料