溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

oracle包的創(chuàng)建

發(fā)布時間:2020-06-17 22:43:49 來源:網(wǎng)絡(luò) 閱讀:641 作者:lxg290 欄目:關(guān)系型數(shù)據(jù)庫

一 包的組成

1)包頭(package):包頭部分申明包內(nèi)數(shù)據(jù)類型,常量,變量,游標,子程序和異常錯誤處理,

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

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

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

3)包頭和包主體分開編譯,并作為兩個分開的對象分別存放在數(shù)據(jù)庫字典中


--刪除package

--drop package pkg_lxg_test;

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

---- 這里可以聲明多個procedure(如果外部調(diào)用才聲明)

create or replace package pkg_lxg_test as

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

                     businessKey   in varchar2, --業(yè)務(wù)號

                     resultCode    out varchar2, --結(jié)果代碼

                     resultMessage out varchar2 --結(jié)果信息

                     );

end pkg_lxg_test;


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

--)3 創(chuàng)建完成后,如果創(chuàng)建成功了會自動編譯的

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

--)5 package創(chuàng)建完成后,-->右鍵,查看--->然后選中你要測試的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('執(zhí)行了方法function2');

   return v_preview_environment;

end function2;


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

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

                     businessKey   in varchar2, --業(yè)務(wù)號

                     resultCode    out varchar2, --結(jié)果代碼

                     resultMessage out varchar2 --結(jié)果信息

                     ) IS

 begin

       begin

             resultCode    := '0';

             resultMessage := 'delete asynchrouns task sucess';

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

       exception

         when others then

           resultCode    := '1';

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

       end;

 end deleteTask;


end pkg_lxg_test;


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI