Oracle過程與函式的區別分析

2022-09-24 10:39:10 字數 1622 閱讀 9662

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

oracle過程和函式都以編譯後的形式存放在資料庫中,函式可以沒有引數也可以有ehzds多個引數並有乙個返回值。過程有零個或多個引數,沒有返回值。函式和過程都可以通過引數列表接收或返回零個或多個值,函式和過程的主程式設計客棧要區別不在於返回值,而在於他們的呼叫方式。oracle過程是作為乙個獨立執行語句呼叫的:

pay_involume(invoice_nbr,30,due_date);

函式以合法的表示式的方式呼叫:

order_volumn:=open_orders(sysdate,30);

建立過程的語法如下:

create [ or replace] procedure [schema.]procedure_name

[parameter_lister]

declaration_sec程式設計客棧tion

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

declaration_section

begin

executable_section

[exception]

exception_section

end [pr

在執行部分函式必須有喲個或多個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本文標題: oracle過程與函式的區別分析

本文位址:

Oracle中儲存過程與函式的區別

oracle 獲取資訊一般用function 修改資料用儲存過程 需要執行commit命令 呼叫儲存過程 call add emailinfo cherry asdfsdf 呼叫函式 select sel emailinfo bbb from dual 函式 方法 必須要有返回值,dal返回引數不可...

函式與過程的區別

先思考一下,什麼是函式?函式是從乙個非空集合到另乙個非空集合的對映。所以,函式的特徵是對映!那再想想,在寫程式的時候,什麼樣才能稱之為對映?是不是應該有兩個集合在對應?那應該有哪兩個集合呢?想想一般寫函式,是不是有輸入引數和返回值?那,這兩個如果都是非空集合,不就構成了乙個從輸入空間到輸出空間的對映...

oracle儲存過程和函式的區別

區別如下 案例 儲存過程 create or replace procedure prc aaa v a number v b out number isbegin v b 33 v a dbms output.put line v b end prc aaa 解析 v b 是返回引數,v a 是傳...