程式包

表示嵌入或連結信息的圖示。此信息可以包含整個檔案(如點陣圖檔案)或部分檔案(如電子表格中的某個單元)。當選擇此數據包時,用於創建對象的應用程式將播放對象(如聲音檔案)或者打開並顯示對象。如果更改原始信息,連結的信息將自動更新。但必須手動更新嵌入信息。

基本介紹

  • 中文名:程式包
  • 外文名:package
  • 作用:將過程和函式安排在邏輯分組中
  • 本質:命名的聲明部分
概述,創建程式包,包的套用,調用包,包的重載,刪除包,

概述

可以利用包(package)將過程和函式安排在邏輯分組中。包含有兩個分離的部件;包說明(規範、包頭)和包體(主體)。包說明和包體都存儲在數據字典中。包與過程和函式的一個明顯的區別時,包僅能存儲在非本地的資料庫中。除了允許相關的對象結合為組之外,包與依賴性較強的存儲子程式相比其所受的限制較少。除此之外,包的效率比較高。
從本質上講,包是一個命名的聲明部分。任何可以顯示在塊聲明中的語句都可以在包中使用,這些語句包括過程、函式游標、類型和變數。把上述內容放入包中的好處是,用戶可以從其他PL/SQL塊中對其進行引用,包為PL/SQL語言提供了全程變數。

創建程式包

包的創建分為包頭的創建和包體的創建兩部分。
(1)包頭。創建包頭的語法格式為:
CREATE OR REPLACE PACKAGE [schema.]package_name /*包頭名稱*/
IS | AS pl/sql_package_spec /*定義過程、函式等*/
其中:
schema:指定將要創建的包所屬用戶方案。
Package_name:將要創建的包的名稱。
Pl/sql_package_spec:變數常量數據類型定義;游標定義;函式、過程定義和參數列表返回類型。
(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;

相關詞條

熱門詞條

聯絡我們