[獨孤九劍]Oracle知識點梳理(九)資料庫常用對象之常見package

來源:互聯網
上載者:User

標籤:

本系列連結導航:

[獨孤九劍]Oracle知識點梳理(一)資料表空間、使用者

[獨孤九劍]Oracle知識點梳理(二)資料庫的串連

[獨孤九劍]Oracle知識點梳理(三)匯入、匯出

[獨孤九劍]Oracle知識點梳理(四)SQL語句之DML和DDL

[獨孤九劍]Oracle知識點梳理(五)資料庫常用對象之Table、View

[獨孤九劍]Oracle知識點梳理(六)資料庫常用對象之Procedure、function、Sequence

[獨孤九劍]Oracle知識點梳理(七)資料庫常用對象之Cursor

[獨孤九劍]Oracle知識點梳理(八)常見Exception 

[獨孤九劍]Oracle知識點梳理(九)資料庫常用對象之package

[獨孤九劍]Oracle知識點梳理(十)%type與%rowtype及常用函數

5.8、package的操作

  包(package),是一組相關過程、函數、變數、常量#SinaEditor_Temp_FontName、類型和遊標等PL/SQL程式設計項目的組合。

  包具有物件導向設計的特點,是對這些PL/SQL程式設計項目的封裝。一個包由兩個分開的部分組成:

  1. 包package聲明或定義(也叫包頭):包定義部分是建立包的規範說明,聲明包內資料類型、變數、常量、遊標等元素。只有在包頭中聲明後,才能在外部調用。
  2. 包體packpage body:包體是包定義部分的具體實現。
  3. 包中對象包括儲存過程,函數,遊標,自訂類型和變數,可以在PL_SQL塊中應用這些對象.

注意:
  a) 包頭與包體的名字必須相同;

  b) 包頭與包體定義時,開始沒有begin關鍵字,與預存程序和函數不同。

  c) 在包頭裡聲明儲存過程,函數,遊標,自訂類型和變數等,在包體中實現。

  d) 在包內聲明常量、變數、類型定義、異常、及遊標時不使用declare。

  e) 包內的過程和函數的定義不要create or replace語句。

  f) 包聲明和包體兩者分離。

5.8.1、定義package
  • 定義包頭
1 create or replace package pkg_person2 is3   Type refTable is ref cursor;4   function fun_GetPersonName(argName in varchar2,argGender out varchar2) return varchar2;5   procedure proc_GetPersonList(argName in varchar2,argGender in varchar2,argResult out refTable);6 end pkg_person;
  • 定義包體
 1 create or replace package pkg_person 2 is 3   function fun_GetPersonName(argName in varchar2,argGender out varchar2) return varchar2 4   as 5     Result person.name%TYPE; 6   begin 7     select name,gender into Result,argGender from person where name=argName and rownum=1; 8     return Result;--傳回值 9   end fun_GetPersonName;10 11   procedure proc_GetPersonList(argName in varchar2,argMsg out varchar2,argResult out refTable)12   as 13     vName varchar2(64);-- 定義變數,要設定長度 14   begin15     vName:=argName; --賦值,每條語句要以分號結束16     open argResult is select * from person where name like vName||‘%‘;--將查詢結果記錄到返回遊標中17     --當然,還可以進行其他複雜的判斷,轉換等操作18     argMsg:=‘正常‘;19     commit;20 21     Exception22       when others then argMsg=‘異常‘;23       rollback; --如果之前執行的是事務性的語句,有必要保證資料安全24 25   end proc_GetPersonList;26 27 end pkg_person;

 

[獨孤九劍]Oracle知識點梳理(九)資料庫常用對象之常見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.