本篇文章為大家展示了Oracle中怎么創(chuàng)建存儲過程和存儲函數(shù),內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
為臨沭等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及臨沭網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、臨沭網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
select * from emp;
-----------------存儲過程------------------------
--定義
create[or replace] procedure 存儲過程名稱(參數(shù)名 [in]/out 數(shù)據(jù)類型)
is/as
begin
--邏輯表達式
end [存儲過程名稱];
--定義存儲過程計算年薪,并答應(yīng)輸出
create or replace procedure proc_salyears(v_no in number)
is
sal_years number(9,2);
begin
--計算年薪
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
--輸出
dbms_output.put_line(sal_years);
end;
--調(diào)用存儲過程
方式1:
call proc_salyears(7788);
方式2:
begin
proc_salyears(7369);
end;
--out參數(shù)的存儲過程
--計算年薪并返回
create or replace procedure proc_salyears(v_no in number,sal_years out number)
is
begin
--計算年薪
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
end;
--調(diào)用存儲過程
declare
v_sal number(9,2);
begin
proc_salyears(7876,v_sal);
dbms_output.put_line(v_sal);
end;
-----------------存儲函數(shù)------------
--定義
create or replace function 存儲函數(shù)名(參數(shù)名 in/out 數(shù)據(jù)類型)
return 數(shù)據(jù)類型
is|as
begin
return 具體的數(shù)據(jù);
end [存儲函數(shù)名稱];
--定義存儲函數(shù)名計算年薪
create or replace function fun_salyears(f_no number)
return number
is
sal_years number(9,2);
begin
select sal*12+nvl(comm,0) into sal_years from emp where empno=f_no;
return sal_years;
end ;
--使用存儲函數(shù)
declare
sal_yeats number(9,2);
begin
sal_yeats := fun_salyears(7876);
dbms_output.put_line(sal_yeats);
end;
--可簡寫
begin
dbms_output.put_line(fun_salyears(7369));
end;
--------存儲過程和存儲函數(shù)的區(qū)別--------
存儲過程多用于項目之間的數(shù)據(jù)共享,存儲函數(shù)多被存儲過程調(diào)用.
存儲函數(shù)可以再sql語句中調(diào)用,存儲過程不能.
上述內(nèi)容就是Oracle中怎么創(chuàng)建存儲過程和存儲函數(shù),你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。