首頁  >  文章  >  資料庫  >  詳解oracle中儲存函數與預存過程

詳解oracle中儲存函數與預存過程

小云云
小云云原創
2017-12-18 10:25:291623瀏覽

在oracle中,函數和預存程序是經常使用到的,他們的語法中有很多相似的地方,可是也有它們的不同之處,本文主要介紹了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;

預存程序與儲存函數的差異與連結:

相同點:1.建立語法結構相似,都可以攜帶多個傳入參數和傳出參數;

2.都是一次編譯,多次運行;

不同點:1.預存程序定義關鍵字用procedure,函數定義用function;

2.預存程序中不能用return回傳值,但函數中可以,而且函數中必須有return回傳;

3.執行方式略有不同,預存程序的執行方式有兩種(1.使用execute;2.使用begin和end)函數除了

預存程序的兩種方式,還可以當做表達試使用,例如放在select中(select f1() from dual;)

總結:如果只有一個回傳值,用儲存函數,否則,一般用預存程序。

相關推薦:

oracle中d​​ecode函數的如何使用

Oracle如何更改表空間的資料檔案位置


詳解Oracle常用函數Trunc

以上是詳解oracle中儲存函數與預存過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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