十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
包用于在邏輯上組合過(guò)程和函數(shù),它由包規(guī)范和包體兩部分組成

創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供興隆網(wǎng)站建設(shè)、興隆做網(wǎng)站、興隆網(wǎng)站設(shè)計(jì)、興隆網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、興隆企業(yè)網(wǎng)站模板建站服務(wù),十余年興隆做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
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);
exec package.function(xx,xx...);
如果想執(zhí)行整個(gè),在包中編寫(xiě)一個(gè)調(diào)研所有函數(shù)或存儲(chǔ)的主存儲(chǔ),然后你調(diào)研主存儲(chǔ)就可以了。
oracle提供包功能本身不具備調(diào)研所有函數(shù)或存儲(chǔ)的功能,只是將函數(shù)、存儲(chǔ)、變量以包的形式管理。
方法一: exec procedure_name; execute procedure_name; 方法二: call procedure_name; 方法三: begin execute procedure_name;end; end;
在CMD中,通過(guò)exp命令將所需的用戶或表,導(dǎo)入到dmp文件中,這樣寫(xiě):
exp 用戶名/密碼@數(shù)據(jù)庫(kù)名 tables=(tab1,tab2,tab3) file=D:\abc.dmp
這是將登錄用戶下的tab1、tab2、tab3導(dǎo)出到D:\abc.dmp中。
是oracle9i嗎?
你先建個(gè)文件夾 把三個(gè)文件解壓放在里面 分別取名 disk1 disk2 disk3(按照順序) 注意 不要再放別的東西
然后注意看disk1的auto...那個(gè)文件(安裝信息文件) 里面有setup=... 找到這個(gè)文件點(diǎn)擊安裝
注意你文件路徑不要出現(xiàn)任何中文。
在存儲(chǔ)過(guò)程或函數(shù)里調(diào)用oracle包的話,首先要有執(zhí)行這個(gè)包的權(quán)限;如果包屬于其他的用戶(不是系統(tǒng)包),調(diào)用時(shí):用戶名.包名.存儲(chǔ)過(guò)程(參數(shù))名或者 變量:=用戶名.包名.函數(shù)(參數(shù));因?yàn)楹瘮?shù)有返回值,變量類(lèi)型要跟函數(shù)返回值的類(lèi)型一致。