oracle數據庫函數/存儲過程/包區別


函數:用於返回特定數據,函數可以直接在SQL語句中執行,包含return 用來進行數據操作,並返回一個單獨的函數值
存儲過程:用於完成一個具體任務(程序的業務)
相同點:
1、創建的語法結構相似,都可以傳入和傳出多個參數
2、一次編譯多次運行
不同點:
存儲過程的關鍵字procedure,函數定義關鍵字function
2、存儲過程中不能用return返回值,函數可以,而且函數必須有return
3、執行方式,存儲過程(begin和end,call,excute),函數除了這三種方式以外,可以當作表達式,在sql語句中執行,
總結:如果只有一個返回值,並且在sql語句中使用用函數,否則,一般全部使用存儲過程

以下是創建過程:

 

函數用於返回特定數據,跟存儲過程差不多。包,顧名思義就是一個包裝的東西。里面可以是函數,可以是存儲過程,
函數創建過程:
Create or replace function function_name()
Return datatype
As
Begin
End;
------------------------------------------------------------------------------
存儲過程的創建:
Create or replace procedure procedure_name()
Is
Begin
End;
------------------------------------------------------------------------------------
包的創建: create or replace package package_name--------------包頭

End
create or replace package body package_name----------------要和包頭名一樣
As
Begin
end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM