ORACLE的程式包不該忽視的東西

來源:互聯網
上載者:User

標籤:

1.程式包就相當於JAVA中的類

2.程式包效率高的原因是:當程式首次調用包內函數或過程時,ORACLE將整個包調入記憶體,當再次訪問包內元素時,ORACLE直接從記憶體中讀取,而不需要進行磁碟I/O操作,從而使程式執行效率得到提高。

3.包有兩部分組成

     (1).包說明(規範)(PACKAGE SPECIFICATION):包說明部分聲明包內資料類型、變數、常量、遊標、子程式和異常錯誤處理等元素,這些元素為包的公有元素。

     (2).包體(PACKAGE BODY):包主體則是包定義部分的具體實現,它定義了包定義部分所聲明的遊標和子程式,在包主體中還可以聲明包的私人元素。

    包說明和包主體分開編譯,並作為兩部分分開的對象存放在資料庫字典中,可查看資料字典user_source, all_source, dba_source,分別瞭解包說明與包主體的詳細資料。

4.包名是唯一的,但不同包中的公有組件可以是相同的,通過包名.公有組件名來區分

5.建立包體時,有以下幾點需要注意:

     包體只能在包說明被建立或編譯後才能進行建立或編譯。

     在包體中實現的過程、函數、遊標的名稱必須與包說明中的過程、函數、遊標一致,包括名稱、參數的名稱以及參數的模式(IN、OUT、IN OUT)。並建設按包說明中的次序定義包體中具體的實現。

     在包體中聲明的資料類型、變數、常量都是私人的,只能在包體中使用而不能被印刷體外的應用程式訪問與使用。

     在包體執行部分,可對包說明,包體中聲明的公有或私人變數進行初始化或其它設定。

6. 在資料字典中查看程式包規範和包主體的資訊
    select object_name,object_type,status from user_objects
    where lower(OBJECT_NAME) = ‘pkg_staff‘

參考文章:http://www.cnblogs.com/huyong/archive/2011/05/26/2057973.html

 

ORACLE的程式包不該忽視的東西

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.