oracle包的創建

一 包的組成

1)包頭(package):包頭部分申明包內數據類型,常量,變量,遊標,子程序和異常錯誤處理,

   這些元素爲包的公有元素。

2)包主體(package body):包主體則是包定義部分的具體實現,它負責爲包頭中所聲明子程序

   提供具體的實現,在包主體中還可以聲明包的私有元素

3)包頭和包主體分開編譯,並作爲兩個分開的對象分別存放在數據庫字典中


--刪除package

--drop package pkg_lxg_test;

--1)首先創建package頭(頭和body的sql不要寫在同一個文件中執行)

---- 這裏可以聲明多個procedure(如果外部調用才聲明)

create or replace package pkg_lxg_test as

  procedure deleteTask(taskTypeCode  in varchar2, --任務類型代碼

                     businessKey   in varchar2, --業務號

                     resultCode    out varchar2, --結果代碼

                     resultMessage out varchar2 --結果信息

                     );

end pkg_lxg_test;


--)2 再創建package體(上面的頭不能和體一起執行,移交時應該寫成兩個sql文件進行移交)

--)3 創建完成後,如果創建成功了會自動編譯的

--)4 如果在創建package不成功的話,在查看和說明中可以查看到錯誤

--)5 package創建完成後,-->右鍵,查看--->然後選中你要測試的package中的proc點擊右鍵---》測試

CREATE OR REPLACE PACKAGE BODY NBADATA.pkg_lxg_test AS


function function2(taskTypeCode  in varchar2,businessKey in varchar2) return varchar2

  is

   v_preview_environment  varchar2(4);

   v_voucher_no varchar2(50);

   v_count          number default 0;

begin

   v_preview_environment:= '1';

   --dbms_output.put_line('執行了方法function2');

   return v_preview_environment;

end function2;


 --這裏定義procedure,可以定點多個

 procedure deleteTask(taskTypeCode  in varchar2, --任務類型代碼

                     businessKey   in varchar2, --業務號

                     resultCode    out varchar2, --結果代碼

                     resultMessage out varchar2 --結果信息

                     ) IS

 begin

       begin

             resultCode    := '0';

             resultMessage := 'delete asynchrouns task sucess';

            --dbms_output.put_line('成功執行了存儲過程');

       exception

         when others then

           resultCode    := '1';

           resultMessage := 'fail in deleting asynchrouns task sucess';

       end;

 end deleteTask;


end pkg_lxg_test;


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