包用于在邏輯上組合過程和函數,它由包規范和包體兩部分組成
兗州網站建設公司創新互聯,兗州網站設計制作,有大型網站制作公司豐富經驗。已為兗州成百上千家提供企業網站建設服務。企業網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的兗州做網站的公司定做!
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);
包只是作為 程序的一個載體而已,你要運行,當然是去調用它!
包里面可以包含函數、過程等,你可以開發程序時候調用包里面的這些程序!沒有聽說過包怎么運行的道理!
就像電視機(包)可以用來看電視,但是你不去打開它(調用包),它就沒有作用!
樓下的明顯誤導別人啊,包何來參數之說?只有包里面的程序才有參數,調用包里面過程的方法如下:
begin
exec 包名.過程名();
end;
函數的調用就不用我寫了吧!
pl/sql里,select
語句必須接into
,不接into那就得返回一個游標出去,比如
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;
包用于在邏輯上組合過程和函數,它由包規范和包體兩部分組成
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);
網站標題:oracle包體如何調用 oracle執行包體
分享鏈接:http://vcdvsql.cn/article4/hejhoe.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、App設計、做網站、電子商務、網站設計公司、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯