包用于在邏輯上組合過(guò)程和函數(shù),它由包規(guī)范和包體兩部分組成

兗州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),兗州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為兗州成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的兗州做網(wǎng)站的公司定做!
1.創(chuàng)建包
--創(chuàng)建一個(gè)包sp_package
create?package?sp_package?is
--聲明該包有一個(gè)過(guò)程和函數(shù),(沒(méi)有實(shí)現(xiàn))
procedure?update_sal(name?varchar2,newsal?number);
function?annual_nicome(name?varchar2)?return?number;
end;
--創(chuàng)建包體(用于實(shí)現(xiàn)已經(jīng)聲明的函數(shù)和過(guò)程)
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);
包只是作為 程序的一個(gè)載體而已,你要運(yùn)行,當(dāng)然是去調(diào)用它!
包里面可以包含函數(shù)、過(guò)程等,你可以開(kāi)發(fā)程序時(shí)候調(diào)用包里面的這些程序!沒(méi)有聽(tīng)說(shuō)過(guò)包怎么運(yùn)行的道理!
就像電視機(jī)(包)可以用來(lái)看電視,但是你不去打開(kāi)它(調(diào)用包),它就沒(méi)有作用!
樓下的明顯誤導(dǎo)別人啊,包何來(lái)參數(shù)之說(shuō)?只有包里面的程序才有參數(shù),調(diào)用包里面過(guò)程的方法如下:
begin
exec 包名.過(guò)程名();
end;
函數(shù)的調(diào)用就不用我寫(xiě)了吧!
pl/sql里,select
語(yǔ)句必須接into
,不接into那就得返回一個(gè)游標(biāo)出去,比如
create
or
replace
package
test_package
is
procedure
query_test(num
number,po_cursor
out
sys_refcursor);
end
test_package;
create
or
replace
package
body
test_package
is
procedure
query_test(num
number,po_cursor
out
sys_refcursor)
is
begin
select
unitname,tradetype,workernumber
from
test
where
income=num;
end
query_test;
end
test_package;
包用于在邏輯上組合過(guò)程和函數(shù),它由包規(guī)范和包體兩部分組成
1.創(chuàng)建包
--創(chuàng)建一個(gè)包sp_package
create package sp_package is
--聲明該包有一個(gè)過(guò)程和函數(shù),(沒(méi)有實(shí)現(xiàn))
procedure update_sal(name varchar2,newsal number);
function annual_nicome(name varchar2) return number;
end;
--創(chuàng)建包體(用于實(shí)現(xiàn)已經(jīng)聲明的函數(shù)和過(guò)程)
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);
網(wǎng)站標(biāo)題:oracle包體如何調(diào)用 oracle執(zhí)行包體
分享鏈接:http://chinadenli.net/article4/hejhoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、App設(shè)計(jì)、做網(wǎng)站、電子商務(wù)、網(wǎng)站設(shè)計(jì)公司、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)