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...