Oracle程序包

當項目越來越大的時候,數據庫中可能會出現成百上千的函數,存儲過程之類的,爲了方便管理,Oracle提倡使用程序包的管理機制,實現業務模塊隔離,方便管理。

Oracle 程序包的創建

程序包的創建有點像JAVA中接口的定義,只有聲明,沒有實現。

語法:create or replace package 包名 as 函數定義...存儲過程定義 end 包名;

舉例:

create or replace package pkg_hbk as
  function computer(num1 number,num2 number) return number;
  procedure pro_add(tel in varchar2,name out varchar2); 
end pkg_hbk;

如上程序包,包名爲pkg_hbk,包中含有一個函數computer,一個存儲過程pro_add
,運行完,在Oracle sql Developer 刷新出現
這裏寫圖片描述

程序包需要配合包體實現。

Oracle 包體實現

語法: create or replace package body 包名(名字要一致) as 包體實現 end 包名;

舉例:

create or replace package body pkg_hbk as
  function computer(num1 number,num2 number) return number as
    begin
      return num1+num2;
    end;

  procedure pro_add(tel in varchar2,name out varchar2) as 
    begin
      name:=tel||'測試';
    end;
end pkg_hbk;

包體創建完後,刷新Oracle SQL developer,多出了package body
這裏寫圖片描述

Oracle包函數,包存儲過程調用

調用使用包名.函數名調用函數
使用包名.存儲過程名調用存儲過程。

set serveroutput on;
begin
  dbms_output.put_line('2+4='||pkg_hbk.computer(2,4));
end;

運行輸出:

匿名塊已完成
2+4=6
set serveroutput on;
declare name varchar2(30);
begin
  pkg_hbk.pro_add('18679758769',name);
  dbms_output.put_line('調用存儲過程:'||name);
end;

輸出:

匿名塊已完成
調用存儲過程:18679758769測試

程序包的刪除

語法:drop package 包名;

drop package pkg_hbk;

運行輸出:

package PKG_HBK已刪除。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章