• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            無我

            讓內(nèi)心永遠(yuǎn)燃燒著偉大的光明的精神之火!
            靈活的思考,嚴(yán)謹(jǐn)?shù)膶崿F(xiàn)
            豪邁的氣魄、頑強(qiáng)的意志和周全的思考

            PL/SQL學(xué)習(xí)——包

                包是由存儲在一起的相關(guān)對象組成的PL/SQL結(jié)構(gòu)。包有兩個獨立的部分,即包頭和包體,這兩部分獨立地存儲在數(shù)據(jù)字典中。包允許相關(guān)的對象結(jié)為組,并且效率比較高。
               從本質(zhì)上講,包就是一個命名的聲明部分。任何可以出現(xiàn)在塊聲明中的語句都可以在包中使用,這些語句包括過程,函數(shù),游標(biāo),類型以及變量。把上述內(nèi)容放入包中的好處是我們可以從其他PL/SQL塊中對其進(jìn)行引用,因此包為PL/SQL提供了全局變量。

               包頭包含了有關(guān)包內(nèi)容的信息。然而,該部分中不包括包的代碼部分:
            create or replace package  <PackageName> is

            -- Author  : ADMINISTRATOR
            --
             Created : 2013-4-10 15:28:44
            --
             Purpose : 

            -- Public type declarations
            type < TypeName > 
              < Datatype >;

              -- Public constant declarations
              < ConstantName > constant < Datatype > := < Value >;

              -- Public variable declarations
              < VariableName > < Datatype >;

              -- Public function and procedure declarations
              function < FunctionName > (< Parameter > < Datatype >return < Datatype >;
              
              procedure < ProcedureName > (< Parameter > < Datatype >);

            end <PackageName>;

               包體是一個獨立于包頭的數(shù)據(jù)字典對象。包體只能在包頭完成編譯后才能進(jìn)行編譯。包體中帶有實現(xiàn)包頭中描述的前向子程序的代碼段。除此之外,包體還可以包括具有包體全局屬性的附加聲明部分,但這些附加說明對于包頭和外部是不可見的。
            create or replace package body  <PackageName> is

            -- Private type declarations
            type < TypeName > is
              < Datatype >;

              -- Private constant declarations
              < ConstantName > constant < Datatype > := < Value >;

              -- Private variable declarations
              < VariableName > < Datatype >;

              -- Function and procedure implementations
              function < FunctionName > (< Parameter > < Datatype >return < Datatype > is
                < LocalVariable > < Datatype >;
              begin
                < Statement >;
                return(< Result >);
              end;
              
              procedure < ProcedureName > (< Parameter > < Datatype >)  is
                < LocalVariable > < Datatype >;
              begin
                < Statement >;
              end;

            begin
              -- Initialization
              < Statement >;
            end;
               包體是可選的。如果包頭中沒有說明任何過程或函數(shù)的話(只有變量聲明,游標(biāo),類型等),則該包體就不必存在。
               包頭中的任何前向說明不能出現(xiàn)在包體中。包頭和包體中的過程和函數(shù)的說明必須一致,其中包括子程序名和其參數(shù)名,以及參數(shù)的模式。
               包頭中聲明的任何對象都是在其作用域中,并且可在其外部使用包名作為前綴對其進(jìn)行引用。但是只在包體中聲明函數(shù)和過程為包體的全局量,其作用域是包體本身。他們可以由該包中的其他過程調(diào)用,但是在包體外是不可見的。

               包的初始化:當(dāng)?shù)谝淮握{(diào)用打包子程序時,該包將進(jìn)行初始化。也就是說將該包從硬盤中讀入到內(nèi)存并啟動調(diào)用的子程序的編譯代碼開始運行。這時,系統(tǒng)為該包中定義的所有變量分配內(nèi)存單元。每個會話都有其打包變量的副本,以確保執(zhí)行同一包子程序的兩個對話使用不同的內(nèi)存單元。
               在大多數(shù)情況下,初始化代碼要在包第一次初始化時運行。為了實現(xiàn)這種功能,我們可以在包體中所有對象之后加入一個初始化部分,這部分就是上面包體最后面的Initialization中的部分。對包進(jìn)行初始化的邏輯都可以寫到這里。

            posted on 2013-04-11 14:54 Tim 閱讀(334) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫

            <2012年11月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            導(dǎo)航

            統(tǒng)計

            公告

            本博客原創(chuàng)文章,歡迎轉(zhuǎn)載和交流。不過請注明以下信息:
            作者:TimWu
            郵箱:timfly@yeah.net
            來源:m.shnenglu.com/Tim
            感謝您對我的支持!

            留言簿(9)

            隨筆分類(173)

            IT

            Life

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            亚洲∧v久久久无码精品| 久久人与动人物a级毛片| 一本一本久久A久久综合精品 | 无码任你躁久久久久久老妇| 精品免费久久久久国产一区| 无夜精品久久久久久| 久久精品国产精品亚洲精品| 久久久无码一区二区三区| 97久久超碰成人精品网站| 久久中文字幕一区二区| 久久久久人妻一区精品果冻| 国内精品久久久久久久久电影网| 久久99国产精品二区不卡| 久久久久久国产精品无码下载| 中文精品久久久久人妻不卡| 久久香蕉综合色一综合色88| 久久婷婷国产剧情内射白浆| 99久久www免费人成精品| 亚洲欧美日韩中文久久| 久久人人爽人人精品视频| avtt天堂网久久精品| 久久久久久曰本AV免费免费| 亚洲国产精品久久久久婷婷老年 | 亚洲va久久久噜噜噜久久| 99久久免费国产精品| 久久影院综合精品| 99久久这里只精品国产免费| 九九热久久免费视频| 久久亚洲国产欧洲精品一| 久久久婷婷五月亚洲97号色| 久久午夜福利无码1000合集| 久久久久国产一区二区| 国产精品内射久久久久欢欢| 久久夜色精品国产噜噜噜亚洲AV| 久久久亚洲AV波多野结衣| 国产精品久久久久久五月尺| 久久久这里只有精品加勒比| 97精品伊人久久大香线蕉| 久久亚洲国产精品成人AV秋霞| 久久精品国产2020| A级毛片无码久久精品免费 |