国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle過程與函數的區別分析

2020-07-26 14:17:32
字體:
來源:轉載
供稿:網友

Oracle過程和函數相信大家都比較了解,下面就為您詳細介紹Oracle過程和函數二者之間的區別,希望可以讓您對Oracle過程和函數有更深的認識。

Oracle過程和函數都以編譯后的形式存放在數據庫中,函數可以沒有參數也可以有多個參數并有一個返回值。過程有零個或多個參數,沒有返回值。函數和過程都可以通過參數列表接收或返回零個或多個值,函數和過程的主要區別不在于返回值,而在于他們的調用方式。Oracle過程是作為一個獨立執行語句調用的:

pay_involume(invoice_nbr,30,due_date);

函數以合法的表達式的方式調用:

order_volumn:=open_orders(SYSDATE,30);

創建過程的語法如下:

CREATE [ OR REPLACE] PROCEDURE [schema.]procedure_name [parameter_lister] {AS|IS} declaration_section BEGIN executable_section [EXCEPTION exception_section] END [procedure_name] 

每個參數的語法如下:

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

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

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

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

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

創建函數的語法和過程的語法基本相同,唯一的區別在于函數有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]

在執行部分函數必須有喲個或多個return語句。

在創建函數中可以調用單行函數和組函數,例如:

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 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣武区| 米泉市| 兴仁县| 双流县| 互助| 永顺县| 焦作市| 阿瓦提县| 丹江口市| 桃园县| 阿鲁科尔沁旗| 汽车| 漠河县| 依安县| 梅州市| 和田市| 康乐县| 高碑店市| 白玉县| 莱芜市| 正镶白旗| 和田县| 湘西| 荆门市| 乌兰察布市| 军事| 宜州市| 巴中市| 封丘县| 安图县| 壤塘县| 堆龙德庆县| 荥阳市| 潮安县| 雷波县| 聂荣县| 长葛市| 稷山县| 万州区| 禄丰县| 光山县|