我試圖查看pl/sql程序和函數之間的區別,並找到鏈接http://it.toolbox.com/blogs/oracle-guide/learn-plsql-procedures-and-functions-13030。首先讓我告訴你一個開發人員通常用pl/sql程序和函數做什麼PL/Sql過程與函數?
1)希望得到一些返回值。他可以通過函數和過程來使用它。在函數中,如果他想返回一個值,他可以使用return語句。如果他想要返回多個值,他可以通過inout參數實現它。類似地,他可以通過inout參數獲得返回值(不包括返回語句)
但是,只要他是開發者,它就沒有什麼區別能夠通過return語句或inout參數實現其意圖。
所以這裏也可以互相替換。
2)他可以在函數和過程中使用DML。所以在這裏他也可以使用其中的任何一種來改變數據庫的狀態。
所以我沒有得到任何具體的推理哪一個使用的地方,因爲兩者都可以在一些替代。
唯一合理的理由,我發現了在一定程度上是函數可以從SQL調用,程序不能
有人能解釋其中之一來使用時,爲什麼?
另請參閱Oracle.com上的[函數vs存儲過程](https://forums.oracle.com/forums/thread.jspa?messageID=547397) – Vache
@Mohit - 我以前曾問過一個類似的問題。可能的Dup http://stackoverflow.com/questions/1179758/function-vs-stored-procedure-in-sql-server –
@Vache我發現這個說法 存儲過程之間還有一個區別存儲過程編譯一次,可以一次又一次地調用,而不需要每次編譯,這樣可以提高性能並節省時間,另一方面,函數每次在https://forums.oracle.com/forums/thread.jspa?messageID處調用時都會進行編譯= 547397不確定它是否真的如此? –