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