包用于在邏輯上組合過程和函數(shù),它由包規(guī)范和包體兩部分組成
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供子洲網(wǎng)站建設(shè)、子洲做網(wǎng)站、子洲網(wǎng)站設(shè)計、子洲網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、子洲企業(yè)網(wǎng)站模板建站服務(wù),十多年子洲做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
1.創(chuàng)建包
--創(chuàng)建一個包sp_package
create?package?sp_package?is
--聲明該包有一個過程和函數(shù),(沒有實現(xiàn))
procedure?update_sal(name?varchar2,newsal?number);
function?annual_nicome(name?varchar2)?return?number;
end;
--創(chuàng)建包體(用于實現(xiàn)已經(jīng)聲明的函數(shù)和過程)
create?package?body?sp_package?is
procedure?update_sal(name?varchar2,newsal?number)
is
BEGIN
UPDATE?emp
SET????sal?=?newsal
WHERE??ename?=?name;
END;
function?annual_income(name?varchar2)
return?number?is
annual_salary?number;
BEGIN
SELECT?sal?*?12?+?Nvl(comm,0)
INTO???annual_salary
FROM???emp
WHERE??ename?=?name;
RETURN?annual_salary;
END;
end;
--調(diào)用包中的內(nèi)容
exec?sp_package.update_sal('name',number);
exec package.function(xx,xx...);
如果想執(zhí)行整個,在包中編寫一個調(diào)研所有函數(shù)或存儲的主存儲,然后你調(diào)研主存儲就可以了。
oracle提供包功能本身不具備調(diào)研所有函數(shù)或存儲的功能,只是將函數(shù)、存儲、變量以包的形式管理。
在存儲過程或函數(shù)里調(diào)用oracle包的話,首先要有執(zhí)行這個包的權(quán)限;如果包屬于其他的用戶(不是系統(tǒng)包),調(diào)用時:用戶名.包名.存儲過程(參數(shù))名或者 變量:=用戶名.包名.函數(shù)(參數(shù));因為函數(shù)有返回值,變量類型要跟函數(shù)返回值的類型一致。 在command 下調(diào)用的話:exec 用戶名.包名.存儲過程名(參數(shù));select 用戶名.包名.函數(shù)名(參數(shù)) from dual;就可以了。包屬于當期用戶可以不寫用戶名。
包只是作為 程序的一個載體而已,你要運行,當然是去調(diào)用它!
包里面可以包含函數(shù)、過程等,你可以開發(fā)程序時候調(diào)用包里面的這些程序!沒有聽說過包怎么運行的道理!
就像電視機(包)可以用來看電視,但是你不去打開它(調(diào)用包),它就沒有作用!
樓下的明顯誤導別人啊,包何來參數(shù)之說?只有包里面的程序才有參數(shù),調(diào)用包里面過程的方法如下:
begin
exec 包名.過程名();
end;
函數(shù)的調(diào)用就不用我寫了吧!
本文名稱:oracle執(zhí)行包怎么寫 oracle程序包
鏈接URL:http://chinadenli.net/article16/hgpcgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、電子商務(wù)、微信公眾號、微信小程序、營銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)