共計 1003 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這期內容當中丸趣 TV 小編將會給大家帶來有關 oracle 中存儲函數與存儲過程的區別是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
一:存儲過程:簡單來說就是有名字的 pl/sql 塊。
語法結構:
create or replace 存儲過程名(參數列表)
is
-- 定義變量
begin
--pl/sql
end;
案例:
create or replace procedure add_(a int,b int)
is
c int;
begin
c:=a+b;
dbms_output.put_line(c);
end;
調用存儲過程
declare
begin
add_(12,34);
end;
存儲過程的三種類型參數:
輸入參數(默認)in
輸出參數 out
輸入輸出參數 in out
函數定義
語法結構:
create or replace function 函數名(參數列表) return 類型
is
begin
end;
案例:
create or replace function f1(n1 dec,n2 dec) return dec
is
r dec(19,2);
begin
r:=n1/n2;
return r;
exception
when zero_divide then
dbms_output.put_line( 除數不能為 0
return 0;
end;
存儲過程與存儲函數的區別和聯系:
相同點:1. 創建語法結構相似,都可以攜帶多個傳入參數和傳出參數;
2. 都是一次編譯,多次運行;
不同點:1. 存儲過程定義關鍵字用 procedure,函數定義用 function;
2. 存儲過程中不能用 return 返回值,但函數中可以,而且函數中必須有 return 返回;
3. 執行方式略有不同,存儲過程的執行方式有兩種 (1. 使用 execute;2. 使用 begin 和 end) 函數除了
存儲過程的兩種方式,還可以當做表達試使用,例如放在 select 中(select f1() from dual;)
總結:如果只有一個返回值,用存儲函數,否則,一般用存儲過程。
上述就是丸趣 TV 小編為大家分享的 oracle 中存儲函數與存儲過程的區別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。
向 AI 問一下細節