好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle PL / SQL包

在实践中,您很少创建独立的存储函数或过程。

相反,你会使用一个包。

包可以一起组织相关的功能和过程,例如创建库,但在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 m
        return to_number(aiv_number); 
    exception 
        when OTHERS then 
        return NULL; 
    end to_number_or_null; 
end MY_PACKAGE; 
/  

查看更多关于Oracle PL / SQL包的详细内容...

  阅读:24次

上一篇

下一篇

第1节:Oracle PL / SQL CASE 语句    第2节:Oracle PL / SQL CHAR VARCHAR2    第3节:Oracle PL / SQL INTERVAL数据类型    第4节:Oracle PL / SQL loop循环    第5节:Oracle PL / SQL for loop循环    第6节:Oracle PL / SQL goto 语句    第7节:Oracle PL / SQL update更新数据    第8节:Oracle PL / SQL包    第9节:Oracle PL / SQL 存储过程    第10节:Oracle PL / SQL 函数    第11节:Oracle PL / SQL变量    第12节:Oracle PL / SQL变量范围    第13节:Oracle PL / SQL TIMESTAMP数据类型    第14节:Oracle PL / SQL 聚合函数大全    第15节:Oracle PL/SQL Views 视图    第16节:Oracle PL / SQL 表 table    第17节:Oracle PL/SQL Delete删除数据    第18节:Oracle PL/SQL Select 查询    第19节:Oracle PL/SQL 教程    第20节:Oracle PL / SQL注释    第21节:Oracle PL / SQL触发器Triggers    第22节:Oracle PL / SQL变量值    第23节:Oracle PL / SQL块结构    第24节:Oracle PL / SQL关联数组    第25节:Oracle PL / SQL文字    第26节:Oracle PL / SQL参数    第27节:Oracle PL / SQL运算符    第28节:Oracle PL/SQL NUMBER    第29节:Oracle PL/SQL if 语句    第30节:Oracle PL/SQL while循环    第31节:Oracle PL / SQL约束    第32节:Oracle PL / SQL 插入insert    第33节:Oracle PL / SQL数据类型    第34节:PL / SQL 分析函数大全