在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;
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中decode函數的如何使用
Oracle如何更改表空間的資料檔案位置
以上是詳解oracle中儲存函數與預存過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!