zoukankan      html  css  js  c++  java
  • ORACLE的程序包不该忽视的东西

    1.程序包就相当于JAVA中的类

    2.程序包效率高的原因是:当程序首次调用包内函数或过程时,ORACLE将整个包调入内存,当再次访问包内元素时,ORACLE直接从内存中读取,而不需要进行磁盘I/O操作,从而使程序执行效率得到提高。

    3.包有两部分组成

         (1).包说明(规范)(PACKAGE SPECIFICATION):包说明部分声明包内数据类型、变量、常量、游标、子程序和异常错误处理等元素,这些元素为包的公有元素。

         (2).包体(PACKAGE BODY):包主体则是包定义部分的具体实现,它定义了包定义部分所声明的游标和子程序,在包主体中还可以声明包的私有元素。

        包说明和包主体分开编译,并作为两部分分开的对象存放在数据库字典中,可查看数据字典user_source, all_source, dba_source,分别了解包说明与包主体的详细信息。

    4.包名是唯一的,但不同包中的公有组件可以是相同的,通过包名.公有组件名来区分

    5.创建包体时,有以下几点需要注意:

         包体只能在包说明被创建或编译后才能进行创建或编译。

         在包体中实现的过程、函数、游标的名称必须与包说明中的过程、函数、游标一致,包括名称、参数的名称以及参数的模式(IN、OUT、IN OUT)。并建设按包说明中的次序定义包体中具体的实现。

         在包体中声明的数据类型、变量、常量都是私有的,只能在包体中使用而不能被印刷体外的应用程序访问与使用。

         在包体执行部分,可对包说明,包体中声明的公有或私有变量进行初始化或其它设置。

    6. 在数据字典中查看程序包规范和包主体的信息
        select object_name,object_type,status from user_objects
        where lower(OBJECT_NAME) = 'pkg_staff'

    参考文章:http://www.cnblogs.com/huyong/archive/2011/05/26/2057973.html

  • 相关阅读:
    开挂的列表与矜持的元组
    烦人的字符串
    好用的for循环与range
    浅谈编码
    流程控制与循环
    基础运算符
    python初识
    python的小介绍
    来自极客标签10款最新设计素材-系列九
    chmod----改变一个或多个文件的存取模式(mode)
  • 原文地址:https://www.cnblogs.com/violin508/p/4321484.html
Copyright © 2011-2022 走看看