ORACLE不常用冷知識之Package

Oracle 中 Package使用

包分為兩部分:包頭和包體.

a. 包頭:

CREATE OR REPLACE PACKAGE package_name /包頭名稱/

IS|AS pl/sql_package_spec /定義過程,函數以及返回類型,變量,常量及數據類型定義/

定義包頭應當遵循以下原則:

b. 包體:

CREATE OR REPLACE PACKAGE BODY package_name/包名必須與包頭的包名一致/

IS | AS pl/sql_package_body /遊標,函數,過程的具體定義/

包體是與包頭相互獨立的,包體只能在包頭完成編譯後才能進行編譯.包體中帶有包頭中描述的子程序的具體實現的代碼段.除此之外,包體還可以包括具有包體人全句屬性的附加聲明部分,但這些附加聲明對於包頭是不見的.

c. 使用好處:首先,良好設計的包是對象(如:函數、過程、全局變量和遊標等)的邏輯分組。當第一次調用包時,所有的代碼(分析樹和偽碼)被加載到內存(Oracle服務器的共享全局區域SGA)這意味著,第一次調用包的成本是非常高德(會涉及服務器的大量處理活動)。但是隨後調用的處理器性能會比較高。因此,在應用程序中使用包,能夠比較經濟的反覆使用過程和函數。

例: 可參看本號文章《oracle單維數組、多維數組》中有實例


分享到:


相關文章: