在实践中,您很少创建独立的存储函数或过程。
相反,你会使用一个包。
包可以一起组织相关的功能和过程,例如创建库,但在PL / SQL中,库被称为包。
PL / SQL包有两个部分:
- 包规格
- 包装体
包规范是包的公共接口。
它列出了任何全局可访问的常量,光标,函数,过程和变量。
包规范描述了您可以从该库读取的内容,而包主体包含实现包规范的包。
创建程序包规范
以下代码是包规范的示例。
用于创建程序包规范的DDL语法如下:
CREATE [OR REPLACE] PACKAGE <package_name> AS -- one or more: constant, cursor, function, procedure, or variable declarations
END <package_name>;
其中<package_name>是要创建的软件包的名称。
以下代码显示如何为MY_PACKAGE创建包规范。
create or replace package MY_PACKAGE as FUNCTION to_number_or_null ( aiv_number in varchar2 ) return number;
end MY_PACKAGE;
/
创建包体
代码进入包体。
包主体是包规范的实现。
它包含在其相应的包规范中声明的任何函数或过程的代码。
主体还可以包含应该在不可公开访问的包体中可访问的任何常量,光标,函数,过程或变量。
用于创建包主体的DDL语法如下:
CREATE [OR REPLACE] PACKAGE BODY <package_name> AS -- one or more constant, cursor, or variable declarations -- one or more function, or procedure implementations
[BEGIN] -- a PL/SQL block called an initialization section that is -- executed only once per session
[EXCEPTION] -- an exception-handling section for the initialization section
END <package_name>;
其中<package_name>是要创建的包主体的名称。
要处理初始化部分的异常,请使用关键字EXCEPTION添加它。
您的函数和过程的实现是嵌入式函数和过程在PL / SQL块的声明部分!
在包主体的声明部分中声明的任何常量,游标或变量都可以被该部分中的所有声明的函数/过程访问,但不能被其他PL / SQL代码访问。
只有您在包规范中声明的项才能被其他存储过程访问。
以下代码显示如何创建MY_PACKAGE包主体。
create or replace package body MY_PACKAGE as FUNCTION to_number_or_null ( aiv_number in varchar2 ) return number is begin -- w ww. ja v a 2 s. c o mreturn to_number(aiv_number); exception when OTHERS then return NULL; end to_number_or_null;
end MY_PACKAGE;
/
CSDN:程序猿 寄语:
1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。
3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。
4、程序不是年轻的专利,但是,他属于年轻。
5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。
6、一个好汉三个帮,程序员同样如此。