oracle資料庫PL/SQL之包

來源:互聯網
上載者:User
六)程式包1.基本概念        程式包簡稱包,用於將邏輯相關的PL/SQL塊或元素(變數、常量、自訂資料類型、異常、過程、函數、遊標)等組織在一起,作為一個完整的單中繼存放區在資料庫中,用名稱來標示程式包。        程式包分兩個獨立的部分:說明部分和包體部分,這兩部分獨立的儲存在資料字典中。包的說明部分的更改需要重新編譯調用的應用程式,包體部分的更改不需要重新編譯調用的應用程式。2.建立包1)建立一個包說明部分。CREATE PACKAG<包名>IS變數、常量及資料類型定義;遊標定義頭部;函數、過程的定義和參數列表以及傳回型別;END<包名>;CREATE PACKAGE my_packageIS    man_num NUMBER;        --定義了兩個全域變數    woman_num NUMBER;    CURSOR teacher_cur;       --定義了一個遊標    CREATE FUNCTION F_count_num(in_sex in TEACHERS.SEX%TYPE)    RETURN  NUMBER;      --定義了一個函數    CREATE PROCEDURE P_count_num    (in_sex in TEACHERS.SEX%TYPE,out_num out NUMBER); --定義了一個過程END my package;2)對應的包體CREATE PACKAGE BODY <包名>AS遊標、函數、過程的具體定義;END<包名>;CREATE PACKAGE BODY my_package   ASCURSOR teacher_cur IS        --遊標具體定義     SELECT TID , TNAME , TITLE , SEX     FROM  TEACHERS     WHERE TID<117;FUNCTION F_count_num      --函數具體定義(in_Sex in TEACHERS.SEX%TYPE)RETURN NUMBERAS          out_num NUMBER;BEGIN     IF in_sex='m'  THEN     SELECT count(SEX)INTO out_num     FROM TEACHERS     WHERE SEX='m';     ELSE     SELECT count(SEX)INTO out_num     FROM TEACHERS     WHERE SEX='f';     END IF;     RETURN(out_num);END F_count_num;PROCEDURE P_count_num       --過程具體定義   (in_sex in TEACHERS.SEX%TYPE, out_num out NUMBER)ASBEGINIF in_sex='m' THENSELECT count(SEX) INTO out_numFROM TEACHERSWHERE SEX='m';ELSESELECT count(SEX) INTO out_numFROM TEACHERSWHERE SEX='f';END IF;END P_count_num;END my_package;                --包體定義結束3.調用包包名.變數名(常量名)包名.遊標名包名.函數名(過程名)SQL>VARIABLE man_num NUMBERSQL>EXECUTE man_num:=my_package.F_count_num('M')4.刪除包DROP PACKAGE my_package

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.