好文要頂:
一、建立、使用儲存過程
oracle版本:
createprocedure
mailinglistcount (
listcount out
integer)is
v_rows
integer
;begin
select
count(*) into
v_rows
from
customers
where
not cust_email is
null
;listcount :
=v_rows;
end;
分析▼這個儲存過程有乙個名為listcount的引數。此引數從儲存過程返回乙個值而不是傳遞乙個值給儲存過程。關鍵字out用來指示這種行為。
oracle支援in(傳遞值給儲存過程)、out(從儲存過程返回值,如這裡)、inout(既傳遞值給儲存過程也從儲存過程傳回值)型別的參
數。儲存過程的**括在begin和end語句中,這裡執行一條簡單的select語句,它檢索具有郵件位址的顧客。然後用檢索出的行數設
置listcount(要傳遞的輸出引數)。
使用:
var returnvalue numberexec
mailinglistcount(:returnvalue);
select returnvalue;
分析▼這段**宣告了乙個變數來儲存儲存過程返回的任何值,然後執行儲存過程,再使用select語句顯示返回的值。
sql server版本:
createprocedure
mailinglistcount
asdeclare
@cnt
integer
select
@cnt
=count(*
)from
customers
where
not cust_email is
null
;return
@cnt;
分析▼此儲存過程沒有引數。呼叫程式檢索sql server的返回**支援的值。其中用decla re語句宣告了乙個名為@cnt的區域性變數(sql server中
所有區域性變數名都以@起頭);然後在select語句中使用這個變數,讓它包含count()函式返回的值;最後,用return @cnt語句將計數返
回給呼叫程式。
呼叫:
declare@returnvalue
intexecute
@returnvalue
=mailinglistcount;
select
@returnvalue;
18 儲存過程
建立儲存過程 sql server 2000 以下例子使用的是jdbc driver2.0 企業管理器 儲存過程 建立儲存過程 例一 讀取資料的儲存過程 create procedure selectinfo asselect from dtree go在jsp中呼叫該儲存過程selectinfo方...
sql第18天 儲存過程和函式
層次查詢 函式儲存過程是乙個有名字的plsql 塊 他沒有返回值但是有輸出引數,可以將資料傳給外部程式 引數型別有三種 in,out,inout 儲存過程建立之後會儲存到資料庫中 當資料庫啟動時,自動的載入到記憶體中 一次建立,多次使用 create or replace procedure 儲存過...
SQL儲存過程
什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要新增...