exec package.function(xx,xx...);
10年的梨樹網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整梨樹建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“梨樹網(wǎng)站設(shè)計”,“梨樹網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
如果想執(zhí)行整個,在包中編寫一個調(diào)研所有函數(shù)或存儲的主存儲,然后你調(diào)研主存儲就可以了。
oracle提供包功能本身不具備調(diào)研所有函數(shù)或存儲的功能,只是將函數(shù)、存儲、變量以包的形式管理。
代碼如下:
CREATE OR REPLACE PACKAGE BODY Interface_PKG AS
PROCEDURE GetTableData(IN_WorkDate IN Date, IO_CURSOR OUT T_CURSOR) IS
V_CURSOR??? T_CURSOR;
BEGIN
OPEN V_CURSOR FOR
select *
from 測試表
where workdate = IN_WorkDate;
IO_CURSOR := V_CURSOR;
End GetTableData;
END Interface_PKG;
擴(kuò)展資料
PACKAGE分SPEC和body兩部分:
1、SPEC是聲明部分:
CREATE?OR?REPLACE?PACKAGE?FirstPage?is
type?outlist?is?ref?cursor;
Procedure?p_get(?maxrow?in?number,?minrow?in?number,?return_list?out?outlist?);
function?f_get(str?in?varchar2)return?varchar2;
END?FirstPage;
2、BODY是功能實現(xiàn)部分:
CREATE?OR?REPLACE?package?body?FirstPage?is
Procedure?p_get(?maxrow?in?number,?minrow?in?number,?return_list?out?outlist?)
is?begin?open?return_list?for
select?*?from?(select?a.*,rownum?rnum?from?IPS_WL_INNOLUXPN?a?where?rownum=maxrow)?where?rnum?=minrow;
end?;
包只是作為 程序的一個載體而已,你要運(yùn)行,當(dāng)然是去調(diào)用它!
包里面可以包含函數(shù)、過程等,你可以開發(fā)程序時候調(diào)用包里面的這些程序!沒有聽說過包怎么運(yùn)行的道理!
就像電視機(jī)(包)可以用來看電視,但是你不去打開它(調(diào)用包),它就沒有作用!
樓下的明顯誤導(dǎo)別人啊,包何來參數(shù)之說?只有包里面的程序才有參數(shù),調(diào)用包里面過程的方法如下:
begin
exec 包名.過程名();
end;
函數(shù)的調(diào)用就不用我寫了吧!
包用于在邏輯上組合過程和函數(shù),它由包規(guī)范和包體兩部分組成
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);
包頭
create or replace package package_name is
prcedure p1;
prcedure p2(v1 in char, v2 in date);
end package_name;
包體
create or replace package body package_name is
prcedure p1 is
begin
--代碼省略
end p1;
prcedure p2(v1 in char, v2 in date) is
begin
--代碼省略
end p2;
end package_name;