Oracle過(guò)程與函數(shù)的區(qū)別分析
Oracle過(guò)程和函數(shù)相信大家都比較了解,下面就為您詳細(xì)介紹Oracle過(guò)程和函數(shù)二者之間的區(qū)別,希望可以讓您對(duì)Oracle過(guò)程和函數(shù)有更深的認(rèn)識(shí)。
Oracle過(guò)程和函數(shù)都以編譯后的形式存放在數(shù)據(jù)庫(kù)中,函數(shù)可以沒(méi)有參數(shù)也可以有多個(gè)參數(shù)并有一個(gè)返回值。過(guò)程有零個(gè)或多個(gè)參數(shù),沒(méi)有返回值。函數(shù)和過(guò)程都可以通過(guò)參數(shù)列表接收或返回零個(gè)或多個(gè)值,函數(shù)和過(guò)程的主要區(qū)別不在于返回值,而在于他們的調(diào)用方式。Oracle過(guò)程是作為一個(gè)獨(dú)立執(zhí)行語(yǔ)句調(diào)用的:
pay_involume(invoice_nbr,30,due_date);
函數(shù)以合法的表達(dá)式的方式調(diào)用:
order_volumn:=open_orders(SYSDATE,30);
創(chuàng)建過(guò)程的語(yǔ)法如下:
CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name [parameter_lister] {AS|IS} declaration_section BEGIN executable_section [EXCEPTION exception_section] END [procedure_name]
每個(gè)參數(shù)的語(yǔ)法如下:
paramter_name mode datatype [(:=|DEFAULT) value]
mode有三種形式:IN、OUT、INOUT。
IN表示在調(diào)用過(guò)程的時(shí)候,實(shí)際參數(shù)的取值被傳遞給該過(guò)程,形式參數(shù)被認(rèn)為是只讀的,當(dāng)過(guò)程結(jié)束時(shí),控制會(huì)返回控制環(huán)境,實(shí)際參數(shù)的值不會(huì)改變。
OUT在調(diào)用過(guò)程時(shí)實(shí)際參數(shù)的取值都將被忽略,在過(guò)程內(nèi)部形式參數(shù)只能是被賦值,而不能從中讀取數(shù)據(jù),在過(guò)程結(jié)束后形式參數(shù)的內(nèi)容將被賦予實(shí)際參數(shù)。
INOUT這種模式是IN和OUT的組合;在Oracle過(guò)程內(nèi)部實(shí)際參數(shù)的值會(huì)傳遞給形式參數(shù),形勢(shì)參數(shù)的值可讀也可寫(xiě),過(guò)程結(jié)束后,形勢(shì)參數(shù)的值將賦予實(shí)際參數(shù)。
創(chuàng)建函數(shù)的語(yǔ)法和過(guò)程的語(yǔ)法基本相同,唯一的區(qū)別在于函數(shù)有RETUREN子句
CREATE [ OR REPLACE] FINCTION [schema.]function_name [parameter_list] RETURN returning_datatype {AS|IS} declaration_section BEGIN executable_section [EXCEPTION] exception_section END [procedure_name]
在執(zhí)行部分函數(shù)必須有喲個(gè)或多個(gè)return語(yǔ)句。
在創(chuàng)建函數(shù)中可以調(diào)用單行函數(shù)和組函數(shù),例如:
CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER) RETURN NUMBER IS pi NUMBER=ACOS(-1); RadiansPerDegree NUMBER; BEGIN RadiansPerDegree=pi/180; RETURN(SIN(DegreesIn*RadiansPerDegree)); END
- Oracle 函數(shù)大全[字符串函數(shù),數(shù)學(xué)函數(shù),日期函數(shù)]
- Oracle文本函數(shù)簡(jiǎn)介
- Oracle 系統(tǒng)變量函數(shù)用法指南
- Oracle to_char函數(shù)的使用方法
- oracle中的trim函數(shù)使用介紹
- Oracle to_date()函數(shù)的用法介紹
- Oracle定義DES加密解密及MD5加密函數(shù)示例
- oracle的nvl函數(shù)的使用介紹
- Oracle排名函數(shù)(Rank)實(shí)例詳解
- Oracle數(shù)學(xué)相關(guān)函數(shù)小結(jié)
相關(guān)文章
Oracle平臺(tái)應(yīng)用數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)
Oracle平臺(tái)應(yīng)用數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)...2007-03-03Oracle單行子查詢返回多行結(jié)果的問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于Oracle中單行子查詢返回多行結(jié)果的問(wèn)題解決的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-07-07連接Oracle數(shù)據(jù)庫(kù)時(shí)報(bào)ORA-12541:TNS:無(wú)監(jiān)聽(tīng)程序的圖文解決教程
這篇文章主要介紹了連接Oracle數(shù)據(jù)庫(kù)時(shí)報(bào)ORA-12541:TNS:無(wú)監(jiān)聽(tīng)程序的圖文解決教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08Oracle中的translate函數(shù)和replace函數(shù)的用法詳解
translate返回expr,其中from_string中的每個(gè)字符的所有出現(xiàn)都被to_string中的相應(yīng)字符替換,而replace 函數(shù)將char中的字符串search_string全部轉(zhuǎn)換為字符串replacement_string。下面給大家分享Oracle中的translate函數(shù)和replace函數(shù)的用法,一起看看吧2017-11-11Oracle庫(kù)恢復(fù)刪除數(shù)據(jù)的方法小結(jié)
誤刪?Oracle?庫(kù)中的數(shù)據(jù),在不考慮全庫(kù)備份和利用歸檔日志情況,如何恢復(fù)數(shù)據(jù)呢,這篇文章將給大家介紹幾種方法恢復(fù)數(shù)據(jù),文章通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12Linux靜默安裝Oracle11g部分問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了Linux靜默安裝Oracle11g部分問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Oracle 獲得以百分號(hào)結(jié)尾的腳本有三種寫(xiě)法
本節(jié)主要介紹了Oracle 獲得以百分號(hào)結(jié)尾的腳本有三種寫(xiě)法,以獲得ID=4443的數(shù)據(jù)行為例2014-07-07Oracle WebLogic Server 12.2.1.2安裝部署教程
這篇文章主要介紹了Oracle WebLogic Server 12.2.1.2安裝部署教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Oracle創(chuàng)建帶有參數(shù)的視圖代碼介紹
這篇文章主要介紹了Oracle創(chuàng)建帶有參數(shù)的視圖代碼介紹,簡(jiǎn)介地介紹了創(chuàng)建方法,具有一定參考價(jià)值,需要的朋友可以了解下。2017-09-09