首頁  >  文章  >  資料庫  >  oracle過程和函數的差別是什麼

oracle過程和函數的差別是什麼

WBOY
WBOY原創
2022-05-31 15:28:414014瀏覽

oracle過程和函數的差異:1、oracle過程有零或多個參數,沒有回傳值,而oracle函數可以沒有參數也可以有多個參數並由一個傳回值;2、oracle過程是作為一個獨立執行語句呼叫的,而oracle函數是作為合法的表達方式呼叫的。

oracle過程和函數的差別是什麼

本教學操作環境:windows10系統、Oracle 12c版、Dell G3電腦。

oracle過程和函數的區別是什麼

1、Oracle過程和函數都以編譯後的形式存放在資料庫中

函數可以沒有參數也可以有多個參數並有一個返回值。

過程有零個或多個參數,沒有回傳值。

2、函數和過程都可以透過參數清單接收或傳回零個或多個值,函數和過程的主要差異不在於傳回值,而在於他們的呼叫方式。

Oracle過程是作為一個獨立執行語句呼叫的:

pay_involume(invoice_nbr,30,due_date);

函數以合法的表達式的方式呼叫:

order_volumn:=open_orders(SYSDATE,30);

建立過程的語法如下:

oracle過程和函數的差別是什麼

每個參數的語法如下

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

擴充知識:

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

IN表示在呼叫過程的時候,實際參數的取值被傳遞給該過程,形式參數被認為是唯讀的,當過程結束時,控制會傳回控制環境,實際參數的值不會改變。

OUT在呼叫過程時實際參數的取值都會被忽略,在過程內部形式參數只能是被賦值,而不能從中讀取數據,在過程結束後形式參數的內容將被賦予實際參數。

INOUT這種模式是IN和OUT的組合;在Oracle過程內部實際參數的值會傳遞給形式參數,情勢參數的值可讀也可寫,過程結束後,情勢參數的值將賦予實際參數。

推薦教學:《Oracle影片教學

以上是oracle過程和函數的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn