oracle過程和函數的差異:1、oracle過程有零或多個參數,沒有回傳值,而oracle函數可以沒有參數也可以有多個參數並由一個傳回值;2、oracle過程是作為一個獨立執行語句呼叫的,而oracle函數是作為合法的表達方式呼叫的。
本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。
1、Oracle過程和函數都以編譯後的形式存放在資料庫中
函數可以沒有參數也可以有多個參數並有一個返回值。
過程有零個或多個參數,沒有回傳值。
2、函數和過程都可以透過參數清單接收或傳回零個或多個值,函數和過程的主要差異不在於傳回值,而在於他們的呼叫方式。
Oracle過程是作為一個獨立執行語句呼叫的:
pay_involume(invoice_nbr,30,due_date);
函數以合法的表達式的方式呼叫:
order_volumn:=open_orders(SYSDATE,30);
建立過程的語法如下:
每個參數的語法如下
paramter_name mode datatype [(:=|DEFAULT) value]
擴充知識:
mode有三種形式:IN、OUT、INOUT。
IN表示在呼叫過程的時候,實際參數的取值被傳遞給該過程,形式參數被認為是唯讀的,當過程結束時,控制會傳回控制環境,實際參數的值不會改變。
OUT在呼叫過程時實際參數的取值都會被忽略,在過程內部形式參數只能是被賦值,而不能從中讀取數據,在過程結束後形式參數的內容將被賦予實際參數。
INOUT這種模式是IN和OUT的組合;在Oracle過程內部實際參數的值會傳遞給形式參數,情勢參數的值可讀也可寫,過程結束後,情勢參數的值將賦予實際參數。
推薦教學:《Oracle影片教學》
以上是oracle過程和函數的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!