Oracle存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)創(chuàng)建方法(詳解)
select * from emp;
-----------------存儲(chǔ)過(guò)程------------------------
--定義
create[or replace] procedure 存儲(chǔ)過(guò)程名稱(參數(shù)名 [in]/out 數(shù)據(jù)類型)
is/as
begin
--邏輯表達(dá)式
end [存儲(chǔ)過(guò)程名稱];
--定義存儲(chǔ)過(guò)程計(jì)算年薪,并答應(yīng)輸出
create or replace procedure proc_salyears(v_no in number)
is
sal_years number(9,2);
begin
--計(jì)算年薪
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
--輸出
dbms_output.put_line(sal_years);
end;
--調(diào)用存儲(chǔ)過(guò)程
方式1:
call proc_salyears(7788);
方式2:
begin
proc_salyears(7369);
end;
--out參數(shù)的存儲(chǔ)過(guò)程
--計(jì)算年薪并返回
create or replace procedure proc_salyears(v_no in number,sal_years out number)
is
begin
--計(jì)算年薪
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
end;
--調(diào)用存儲(chǔ)過(guò)程
declare
v_sal number(9,2);
begin
proc_salyears(7876,v_sal);
dbms_output.put_line(v_sal);
end;
-----------------存儲(chǔ)函數(shù)------------
--定義
create or replace function 存儲(chǔ)函數(shù)名(參數(shù)名 in/out 數(shù)據(jù)類型)
return 數(shù)據(jù)類型
is|as
begin
return 具體的數(shù)據(jù);
end [存儲(chǔ)函數(shù)名稱];
--定義存儲(chǔ)函數(shù)名計(jì)算年薪
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 ;
--使用存儲(chǔ)函數(shù)
declare
sal_yeats number(9,2);
begin
sal_yeats := fun_salyears(7876);
dbms_output.put_line(sal_yeats);
end;
--可簡(jiǎn)寫
begin
dbms_output.put_line(fun_salyears(7369));
end;
--------存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的區(qū)別--------
存儲(chǔ)過(guò)程多用于項(xiàng)目之間的數(shù)據(jù)共享,存儲(chǔ)函數(shù)多被存儲(chǔ)過(guò)程調(diào)用.
存儲(chǔ)函數(shù)可以再sql語(yǔ)句中調(diào)用,存儲(chǔ)過(guò)程不能.
- Oracle存儲(chǔ)過(guò)程基本語(yǔ)法介紹
- oracle 存儲(chǔ)過(guò)程和函數(shù)例子
- oracle 存儲(chǔ)過(guò)程詳細(xì)介紹(創(chuàng)建,刪除存儲(chǔ)過(guò)程,參數(shù)傳遞等)
- Oracle中返回結(jié)果集的存儲(chǔ)過(guò)程分享
- Oracle存儲(chǔ)過(guò)程及調(diào)用
- Oracle存儲(chǔ)過(guò)程返回游標(biāo)實(shí)例詳解
- oracle 在一個(gè)存儲(chǔ)過(guò)程中調(diào)用另一個(gè)返回游標(biāo)的存儲(chǔ)過(guò)程
- Oracle存儲(chǔ)過(guò)程入門學(xué)習(xí)基本語(yǔ)法
- oracle數(shù)據(jù)庫(kù)中查看系統(tǒng)存儲(chǔ)過(guò)程的方法
- Oracle存儲(chǔ)過(guò)程新手入門教程(附學(xué)習(xí)用例)
相關(guān)文章
mybatis使用oracle進(jìn)行添加數(shù)據(jù)的方法
這篇文章主要介紹了mybatis使用oracle進(jìn)行添加數(shù)據(jù)的方法,本文給大家分享我的心得體會(huì),需要的朋友可以參考下2021-04-04通過(guò)LogMiner實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)同步遷移
為了實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步,網(wǎng)上的資料比較少的時(shí)候。最好用的Oracle數(shù)據(jù)庫(kù)同步工具是:GoldenGate ,而GoldenGate是要收費(fèi)的。這個(gè)時(shí)候就可以使用LogMiner來(lái)實(shí)現(xiàn)Oracle數(shù)據(jù)同步遷移,下面文章內(nèi)容將給大家介紹其實(shí)現(xiàn)方法2021-09-09Oracle SQL Developer連接報(bào)錯(cuò)(ORA-12505)的解決方案(兩種)
本篇文章通過(guò)兩種方案幫大家解決Oracle SQL Developer連接報(bào)錯(cuò)(ORA-12505),需要的朋友可以參考下2015-10-10Oracle新建用戶、角色,授權(quán),建表空間的sql語(yǔ)句
Oracle創(chuàng)建用戶操作相信大家都不陌生,下面就為您介紹Oracle創(chuàng)建用戶的語(yǔ)法的相關(guān)知識(shí),希望對(duì)您學(xué)習(xí)Oracle創(chuàng)建用戶的方面能有所幫助2012-07-07Oracle創(chuàng)建設(shè)置查詢權(quán)限用戶的方法
這篇文章主要給大家介紹了關(guān)于Oracle創(chuàng)建設(shè)置查詢權(quán)限用戶的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08ORACLE?ORA-01653:?unable?to?extend?table?的錯(cuò)誤處理方案(oracl
這篇文章主要介紹了ORACLE?ORA-01653:?unable?to?extend?table?的錯(cuò)誤處理方案,本文通過(guò)具體步驟給大家分享解決方案,需要的朋友可以參考下2022-08-08Oracle數(shù)據(jù)庫(kù)ORA 54013錯(cuò)誤的解決辦法
ORA 54013 不允許對(duì)虛擬列執(zhí)行INSERT 操作,這是Oracle 11 的新特性。接下來(lái)通過(guò)本文給大家介紹oracle數(shù)據(jù)庫(kù)ORA 54013錯(cuò)誤的解決辦法,非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-10-10oracle如何使用java source調(diào)用外部程序
這篇文章主要為大家介紹了oracle如何使用java source調(diào)用外部程序,感興趣的小伙伴們可以參考一下2016-09-09