oracle過程和函數(shù)的區(qū)別:1、oracle過程有零或者多個參數(shù),沒有返回值,而oracle函數(shù)可以沒有參數(shù)也可以有多個參數(shù)并由一個返回值;2、oracle過程是作為一個獨立執(zhí)行語句調(diào)用的,而oracle函數(shù)是作為合法的表達(dá)方式調(diào)用的。
本教程操作環(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)建過程的語法如下:
每個參數(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視頻教程》