首先自己將全域性變數和包中的公有變數、私有變數混為一談:
包中的程式元素也分為公用元素和私用元素兩種,這兩種元素的區別是他們允許訪問的程式範圍不同,即它們的作用域不同。公用元素不僅可以被包中的函式、過程所呼叫,也可以被包外的pl/sql程式訪問,而私有元素只能被包內的函式和過程式所訪問。
在pl/sql程式設計中,使用包不僅可以使程式設計模組化,對外隱藏包內所使用的資訊(通過使用私用變數),而寫可以提高程式的執行效率。因為,當程式首次呼叫包內函式或過程時,oracle將整個包調入記憶體,當再次訪問包內元素時,oracle直接從記憶體中讀取,而不需要進行磁碟i/o操作,從而使程式執行效率得到提高。這是私有和共有元素的定義。 而全域性變數是
對整個包中的儲存過程、函式等都可見,全域性變數既可以在包頭進行定義也可以在保體進行定義。其賦值可以在包頭進行,也可以在包體定義時進行賦值,或者也可以在包體最後的begin處進行賦值,此時在呼叫包時會對其進行初始化。
static全域性變數 全域性變數
1 全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同。這兩者的區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原始檔中都是...
PHP中全域性變數和超全域性變數
自定義全域性變數的作用域為當前的指令碼檔案的任意位置 函式或者方法啊之類的 但是要想用它們必須先執行一下 global variable語句 variable為要使用的全域性變數 或者是使用 global 變數名字 來呼叫。超全域性變數作用於也是為當前的指令碼檔案的任意位置,在使用的時候無需先執行 ...
全域性變數和靜態全域性變數
全域性變數和區域性變數是從變數的作用域的角度劃分。靜態變數和動態變數是從變數的記憶體分配的角度劃分。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方式上並無不同,區別在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態的全域性變數在各個原...