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

  • 相关阅读:
    epoll 使用详解
    STL 较详尽总结
    可视化对比排序算法
    统治世界的十大算法
    Vector Demo
    Git远程操作(附重要原理图)
    Wireshark(五):TCP窗口与拥塞处理
    Wireshark(四):网络性能排查之TCP重传与重复ACK
    Wireshark(三):应用Wireshark IO图形工具分析数据流
    Wireshark(二):应用Wireshark观察基本网络协议
  • 原文地址:https://www.cnblogs.com/violin508/p/4321484.html
Copyright © 2011-2022 走看看