oracle過程和函數(shù)的區(qū)別是什么

oracle過程和函數(shù)的區(qū)別:1、oracle過程有零或者多個參數(shù),沒有返回值,而oracle函數(shù)可以沒有參數(shù)也可以有多個參數(shù)并由一個返回值;2、oracle過程是作為一個獨立執(zhí)行語句調(diào)用的,而oracle函數(shù)是作為合法的表達(dá)方式調(diào)用的。

oracle過程和函數(shù)的區(qū)別是什么

本教程操作環(huán)境:windows10系統(tǒng)、Oracle 12c版、Dell G3電腦。

oracle過程和函數(shù)的區(qū)別是什么

1、Oracle過程和函數(shù)都以編譯后的形式存放在數(shù)據(jù)庫

函數(shù)可以沒有參數(shù)也可以有多個參數(shù)并有一個返回值。

過程有零個或多個參數(shù),沒有返回值。

2、函數(shù)和過程都可以通過參數(shù)列表接收或返回零個或多個值,函數(shù)和過程的主要區(qū)別不在于返回值,而在于他們的調(diào)用方式。

Oracle過程是作為一個獨立執(zhí)行語句調(diào)用的:

pay_involume(invoice_nbr,30,due_date);

函數(shù)以合法的表達(dá)式的方式調(diào)用:

order_volumn:=open_orders(SYSDATE,30);

創(chuàng)建過程的語法如下:

oracle過程和函數(shù)的區(qū)別是什么

每個參數(shù)的語法如下

paramter_name?mode?datatype?[(:=|DEFAULT)?value]

擴展知識:

mode有三種形式:IN、OUT、INOUT。

IN表示在調(diào)用過程的時候,實際參數(shù)的取值被傳遞給該過程,形式參數(shù)被認(rèn)為是只讀的,當(dāng)過程結(jié)束時,控制會返回控制環(huán)境,實際參數(shù)的值不會改變。

OUT在調(diào)用過程時實際參數(shù)的取值都將被忽略,在過程內(nèi)部形式參數(shù)只能是被賦值,而不能從中讀取數(shù)據(jù),在過程結(jié)束后形式參數(shù)的內(nèi)容將被賦予實際參數(shù)。

INOUT這種模式是IN和OUT的組合;在Oracle過程內(nèi)部實際參數(shù)的值會傳遞給形式參數(shù),形勢參數(shù)的值可讀也可寫,過程結(jié)束后,形勢參數(shù)的值將賦予實際參數(shù)。

推薦教程:《Oracle視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊9 分享