存儲過程(Stored Procedure)
可以包含邏輯判斷的sql語句集合。
是經過預編譯,存在於數據庫中。
通過調用指定存儲過程的名字(可有參,可無參)來執行。
優點:
簡化了複雜的業務邏輯,根據需要可重複使用
屏蔽了底層細節,不暴露表信息即可完成操作
降低網絡的通信量,多條語句可以封裝成一個存儲過程來執行
設置訪問權限來提高安全性
提高執行效率,因爲它是預編譯以及存儲在數據庫中
缺點:
可移植性差,相同的存儲過程並不能跨多個數據庫進行操作
大量使用存儲過程後,首先會使服務器壓力增大,而且維護難度逐漸增加
存儲過程的語法:
--下面是在oracle數據庫下最基本的語法
--僅創建一個名爲testProcedure 的無參的存儲過程
--IS也可以是AS
--如果已經存在名爲 testProcedure 的存儲過程,下面的語法會出現 名稱已被使用的錯誤
--解決辦法:
--第一句可以寫成 create or replace procedure testProcedure
--這樣會替換原有的存儲過程
--NULL表示任何可以正確執行的sql 語句,但至少一句
create procedure testProcedure
IS
BEGIN
NULL
END;
存儲過程的參數的分類:
IN 用於接受調用程序的值(默認的參數模式)
OUT 用於向調用程序返回值
INOUT 用於接受調用程序的值,並向調用程序返回更新的值
注意:
存儲過程之間可相互調用
存儲過程一般修改後,立即生效。