18 儲存過程 SQL

2022-04-29 03:27:06 字數 1428 閱讀 8299

好文要頂:

一、建立、使用儲存過程

oracle版本:

create

procedure

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 number

exec

mailinglistcount(:returnvalue);

select returnvalue;

分析▼這段**宣告了乙個變數來儲存儲存過程返回的任何值,然後執行儲存過程,再使用select語句顯示返回的值。

sql server版本:

create

procedure

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公司為什麼還要新增...