当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle创建程序包(一)
发布时间:2010/12/9 10:33:25 来源:www.xue.net 编辑:城市总裁吧
   一、程序包的相关知识

  1.定义与说明

  a. 相关对象的封装

  b. 程序包的各部分

  - 程序包规格说明

  声明子程序

  - 程序包主体

  定义子程序

  2.使用程序包的优点

  - 模块化

  - 更轻松的应用程序设计

  - 信息隐藏

  - 新增功能

  - 性能更佳

  3.公有项和私有项的区别

  公有项:在程序包说明部分定义的变量、过程、函数

  私有项:在程序包主体部分定义的变量、过程、函数

  公有项                          私有项

  可以在程序包之外引用         不能在程序包之外引用

  是在程序包规格说明中定义的   是在程序包主体中定义的

  用于全局目的                 用于局部目的

  二、程序包创建说明

  1.程序包规格说明

  (1)、使用Create Package命令进行创建

  (2)、包含公用对象和类型

  (3)、声明类型、常量、变量、异常、游标和子程序

  (4)、可以在没有程序包主题的情况下存在

  (5)、可以重载

  - 程序包中的多个子程序可以具有相同的名称

  - 它们的形参是不同的

  - 只能位于打包的子程序中

  - 限制

  a. 如果子程序的参数仅名称或模式不同,则不能重载

  b. 不能基于其返回类型重载子程序

  2.程序包主体

  (1)、使用Create Package body 命令进行创建

  (2)、包含子程序和游标的定义

  (3)、包含私有声明

  (4)、不能在没有程序包规格说明的情况下独立存在

  3.程序包的调用

  包名.类型名;

  包名.函数名[参数表];

  包名..过程名[参数表];

  (1)、 Package-name.type-name

  (2)、 Package-name.object-name

  (3)、 Package-name.subprogram-name

  其中,Package-name 是程序包名称,type-name是类型名称,

  object-name是对象名称,subprogram-name 是子程序名称

  --示例

  DBMS_output.put_line(Hello);

  (4)、对于返回参数是游标类型的调用(如:引用游标)

  set autoprint on --打开Sqlplus输出

  variable tempCur RefCursor; --定义一个宿主类型的引用游标变量

  exec StudentPackage.ReturnStudent(:tempCur); --执行带有引用游标的过程 注意使用宿主类型的变量前面要加“:”符号

  4. 有关子程序和程序包的信息

  A.数据字典

  User_objects 用于检查对象是否存在

  User_source   用于获取对象的代码

  B. 包的修改和删除

  Alter Package [Body] 包名

  Alter Package Body StudentPackage;

  Drop Package [Body] 包名

  Drop Package Body StudentPackage;

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved