Oracle --包

包是一組相關過程、函數、變量、常量和遊標等pl/sql程序設計元素的組合。
sql

與類同樣,包中的程序元素分爲公用元素和私用元素。公用元素能夠被包中的函數、過程調用,也能夠被包外的pl/sql程序訪問;而私有元素只能被包內的函數和過程訪問。數據庫

在pl/sql程序設計中,使用包能夠提升程序的執行效率。由於程序首次調用包內函數或過程時,oracle須要將整個包調入內存;當再次訪問包內元素時,oracle直接從內存中讀取,而不須要進行磁盤i/o操做,從而提升程序的執行效率。
oracle

1. 一個包由兩個分開的部分組成:函數

1>包定義:包定義部分聲明瞭包內數據類型、變量、常量、遊標、子程序和異常錯誤處理等,這些元素爲包的公有元素。設計

2>包主體:包主體是包定義部分的具體實現,它實現了包定義部分所聲明的遊標和子程序,在包主體中還能夠聲明包的私有元素。
code

包定義和包主體分開編譯,並做爲兩部分分開的對象存放在數據庫字典中。
對象

2. 包的定義內存

create or replace package demo_pakage isget

--公有數據類型定義io

--公有遊標聲明

--公有變量聲明

--公有子程序聲明

end demo_pakage;

create or replace package demo_package is
      
       --公有變量       
       v_consump t_consumption%rowtype;
       --子程序函數
       function getallsalary(cstmId number)
         return number;
       --子程序存儲過程
       procedure sp_checkaccount(account in char,errNo out integer);
         
end demo_package;

3.子程序重載

pl/sql容許對包內子程序和本地子程序進行重載。所謂重載是指兩個或多個子程序具備相同的名稱,但擁有不一樣的參數變量、參數順序或參數數據類型。

相關文章
相關標籤/搜索