-
程序包
鎖定
- 中文名
- 程序包
- 外文名
- package
- 作 用
- 將過程和函數安排在邏輯分組中
- 本 質
- 命名的聲明部分
程序包內容簡介
可以利用包(package)將過程和函數安排在邏輯分組中。包含有兩個分離的部件;包説明(規範、包頭)和包體(主體)。包説明和包體都存儲在數據字典中。包與過程和函數的一個明顯的區別是,包僅能存儲在非本地的數據庫中。除了允許相關的對象結合為組之外,包與依賴性較強的存儲子程序相比其所受的限制較少。除此之外,包的效率比較高。
從本質上講,包是一個命名的聲明部分。任何可以顯示在塊聲明中的語句都可以在包中使用,這些語句包括過程、函數、遊標、類型和變量。把上述內容放入包中的好處是,用户可以從其他PL/SQL塊中對其進行引用,包為PL/SQL語言提供了全程變量。
程序包創建程序包
包的創建分為包頭的創建和包體的創建兩部分。
(1)包頭。創建包頭的語法格式為:
CREATE OR REPLACE PACKAGE [schema.]package_name /*包頭名稱*/
IS | AS pl/sql_package_spec /*定義過程、函數等*/
其中:
schema:指定將要創建的包所屬用户方案。
Package_name:將要創建的包的名稱。
(2)創建包體的語法格式為:
CREATE OR REPLACE PACKAGE BODY[schema.]package_name
IS | AS pl/sql_package_body
其中:
schema:指定將要創建的包所屬用户方案。
Pl/sql_package_body:遊標、函數、過程的具體定義。
包體是一個獨立於包頭的數據字典對象。包體只能在包頭完成編譯 後才能進行編譯。包體中帶有實現包頭中描述的前向子程序的代碼 段。除此之外,包體還可以包括具有包體全局屬性的附加聲明部 分,但這些附加説明對於説明部分是不可見的。
程序包包的應用
程序包調用包
在創建了包説明和相應的包體之後,就可以調用該包的各個組件了。對包內公有組件的調用格式要用到包名並加“.”作為限定詞,即包名.組件名稱。
程序包包的重載
在包的內部,過程和函數可以重載。可以有名稱相同的對象。
程序包刪除包
當不在需要某個程序包時,可以將其刪除。如果只刪除包體,可以使用命令:
DROP PACKAGE BODY package_name;
如果要同時刪除包頭,可以使用命令:
DROP PACKAGE package_name;
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:15次歷史版本
- 最近更新: 敏格格smile