儲存過程包Package

2021-09-02 01:14:19 字數 1484 閱讀 8589

1. 如果業務中需要用到大量的儲存過程,則需要用package對儲存過程進行進一步的封裝,package 分為package宣告以及packge body,需要先宣告儲存過程,儲存過程中相關的資料,在package body中實現宣告中的儲存過程。類似於c++中的class, package宣告封裝業務相關的儲存過程以及與業務相關的資料。

2. package宣告

create or replace package package_name is

/* 不帶引數的儲存過程 */

procedure procedure_one ;

/* 帶引數的儲存過程 */

procedure procedure_two(p1 in varchar2, p2 in number);

end package_name;

3.  package body

create or replace package body package_name is

/* * 不帶引數的儲存過程

*/procedure procedure_one is

/* 引數宣告 */

name varchar2(12);

begin

/* 處理體 */

select * from dual;

/* 異常處理 */

exception

when no_data_found then

dbms_output.put_line('無資料記錄');

when others then

dbms_output.put_line('異常**:' + sqlcode); --sqlcode代表異常**

dbms_output.put_line('異常資訊:' + sqlerrm); --sqlerrm代表異常資訊

end watch_monkey;

/* *帶引數的儲存過程

*/procedure procedure_two(p1 in varchar2, p2 in number) is

/* 引數宣告 */

name varchar2(12);

begin

/* 處理體 */

name := 'hello oracle!';

/* 異常處理 */

exception

when no_data_found then

dbms_output.put_line('catch exceptioin');

when others then

dbms_output.put_line('異常**:' + sqlcode); --sqlcode代表異常**

dbms_output.put_line('異常資訊:' + sqlerrm); --sqlerrm代表異常資訊

end feed_monkey;

end package_name;

基礎篇 包(package)

包 1.對類檔案進行分類管理。2.給類提供多層命名空間。3.寫在程式的第一行。4.類名的全稱是 包名.類名 5.包也是一種封裝形式。總結 包與包之間進行訪問,被訪問的包中的類以及類中的成員,需要public修飾。不同包中的子類還可以直接訪問父類中被protected許可權修飾的成員。包與包之間可以使...

物件導向 包(package)

包 package 1 對類檔案進行分類管理 2 給類提供多層命名空間 3 解除安裝程式檔案的第一行 4 類名的全稱是 包名.類名 5 包也是一種封裝形式 總結 1 包與包之間進行訪問,被訪問包中的類以及類中的成員,需要public修飾。2 不同包中的子類還可以直接訪問父類中被protected許可...

包和儲存過程

最近一直在用oracle做開發,由於原來熟悉sqlserver,所以收穫還蠻大的,把一些常用寫下,好方便查閱.建立包create or replace package packagename astype curs is ref cursor procedure procedurename inva...