对于package中全局变量的一点点初级理解

首先自己将全局变量和包中的公有变量、私有变量混为一谈:

包中的程序元素也分为公用元素和私用元素两种,这两种元素的区别是他们允许访问的程序范围不同,即它们的作用域不同。公用元素不仅可以被包中的函数、过程所调用,也可以被包外的PL/SQL程序访问,而私有元素只能被包内的函数和过程序所访问。
       在PL/SQL程序设计中,使用包不仅可以使程序设计模块化,对外隐藏包内所使用的信息(通过使用私用变量),而写可以提高程序的执行效率。因为,当程序首次调用包内函数或过程时,ORACLE将整个包调入内存,当再次访问包内元素时,ORACLE直接从内存中读取,而不需要进行磁盘I/O操作,从而使程序执行效率得到提高。这是私有和共有元素的定义。 而全局变量是对整个包中的存储过程、函数等都可见,全局变量既可以在包头进行定义也可以在保体进行定义。其赋值可以在包头进行,也可以在包体定义时进行赋值,或者也可以在包体最后的begin处进行赋值,此时在调用包时会对其进行初始化。

原文地址:https://www.cnblogs.com/JSD1207ZX/p/9386330.html