什麼是儲存過程:儲存過程可以說是乙個記錄集吧,它是由一些t-sql語句組成的**塊,這些t-sql語句**像乙個方法一樣實現一些功能(對單錶或多表的增刪改查),然後再給這個**塊取乙個名字,在用到這個功能的時候呼叫他就行了。
儲存過程的好處:
1.由於資料庫執行動作時,是先編譯後執行的。然而儲存過程是乙個編譯過的**塊,所以執行效率要比t-sql語句高。
2.乙個儲存過程在程式在網路中互動時可以替代大堆的t-sql語句,所以也能降低網路的通訊量,提高通訊速率。
3.通過儲存過程能夠使沒有許可權的使用者在控制之下間接地訪問資料庫,從而確保資料的安全。
下面通過乙個列子理解一下儲存過程。
查詢得到貓咪或者狗子的數量, 如果傳入的是0就貓咪,否者為狗子。(以oracle為例)
createtable
animals(
id number primary key,
name varchar(10
), type char(2)
);
insertinto
animals(id,name,type) values(1,'summer'
,'貓');
insert
into
animals(id,name,type) values(2,'doubao'
,'狗');
insert
into
animals(id,name,type) values(3,'
歐歐','貓');
--建立儲存過程(查詢得到貓咪或者狗子的數量, 如果傳入的是0就貓咪,否者為狗子)
create or replace procedure ges_animals_count(type_id in number, animals_count out number)
isbegin
if type_id=0 then
select count(*) into animals_count from animals where animals.type='貓';
else
select count(*) into animals_count from animals where animals.type='狗' ;
end if ;
end ges_animals_count;
-- 執行儲存過程
begin
-- call the procedure
ges_animals_count(type_id => :type_id,
animals_count => :animals_count);
end;
儲存過程系列之儲存過程sql查詢儲存過程的使用
1.查詢某個表被哪些儲存過程 以下簡稱 sp 使用到 select distinct object name id from syscomments where id in select object id from sys.objects where type p and text like ta...
儲存過程系列之儲存過程sql查詢儲存過程的使用
1.查詢某個表被哪些儲存過程 以下簡稱 sp 使用到 select distinct object name id from syscomments where id in select object id from sys.objects where type p and text like ta...
Oracle儲存過程呼叫儲存過程
oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...