存儲過程是一個預編譯的SQL語句,優點是允許模塊化的設計,就是說只需創建一次,以后在該程序中就可以調用多次。
如果某次操作需要執行多次SQL,使用存儲過程比單純SQL語句執行要快。
調用:
1)可以用一個命令對象來調用存儲過程。
2)可以供外部程序調用,比如:java、.net程序。
優點:
1)存儲過程是預編譯過的,執行效率高。
2)存儲過程的代碼直接存放於數據庫中,通過存儲過程名直接調用,減少網絡通訊。
3)安全性高,執行存儲過程需要有一定權限的用戶。
4)存儲過程可以重復使用,可減少數據庫開發人員的工作量。
缺點:
移植性差
存儲過程與函數的區別
(1)存儲過程用戶在數據庫中完成特定操作或者任務(如插入,刪除等),函數用於返回特定的數據。
(2)存儲過程聲明用procedure,函數用function。
(3)存儲過程不需要返回類型,函數必須要返回類型。
(4)存儲過程可作為獨立的pl-sql執行,函數不能作為獨立的plsql執行,必須作為表達式的一部分。
(5)存儲過程只能通過out和in/out來返回值,函數除了可以使用out,in/out以外,還可以使用return返回值。
(6)sql語句(DML或SELECT)中不可用調用存儲過程,而函數可以。