初步學習之儲存過程基本語法

2021-08-25 22:51:04 字數 2317 閱讀 4999

儲存過程,就是帶有名字的乙個程式塊。

是指程式塊建立之後,儲存在資料庫內部,然後我們可以在自己寫的程式中通過某種手段呼叫這段程式。

一般是通過儲存過程的名字來呼叫,就類似使用乙個方法或者函式一樣。可以設定是否傳入引數,和是否有返回值。

呼叫完後這段程式塊就會自動做一些操作,做的操作就是我們定義的儲存過程的內容。比如像某張表插入某些資料,或者根據條件修改某條資料。

儲存過程的優點:1、儲存過程因為sql語句已經預編繹過了,因此執行的速度比

較快。

2、儲存過程執行比較穩定,不會有太多的錯誤。

3、儲存過程可以在單個儲存過程中執行一系列 sql 語句。

4、儲存過程可以從自己的儲存過程內引用其它儲存過程,這可

以簡化一系列複雜語句。…等其他優點

(不同的資料庫的儲存過程,都是用當前自己這個資料庫的程式語言來編寫的,下面舉例oracle中的用法)

1.基本結構

create

or replace procedure 儲存過程名字

(引數1 in number,

引數2 in number)is

變數1 integer :=0;

變數2 date;

begin

//儲存過程內容

end ;

2.if判斷

if l_count <> 0

then

***x--需要執行的操作**

endif;

3.while迴圈

while v_test<10

loop

begin

***x--需要執行的操作**

end;

endloop;

4.變數賦值

l_test :=123;
5.select查詢結果存入變數中,可以同時存入多個列到多個變數中,要確保至少查到一條資料,否則會返回乙個錯誤:nodatafound。(可提前做個判斷,select count(*) …)

select no,name 

into l_no,l_nae

from t_student

where ...

6.可以在儲存過程中呼叫儲存過程,與程式中的方法和函式類似,若有引數則考慮確保傳入的引數型別、數量、順序一致,還可以設定返回值。

簡單例子:

create or replace procedure p_student

/*create or replace procedure是讓資料庫開始建立儲存過程,後面緊接著儲存過程的名稱,若已經存在,執行後則覆蓋原先的儲存過程*/

(/*括號裡為儲存過程需要的引數,可定義為傳入,也可定義為傳出,還可以同時定義為傳入傳出型別*/

m_student_no in

number,--(傳入)引數1 student_no

m_score in

number, --(傳入)引數2 name

res in out varchar2 --(傳入傳出)引數3 res 《最後乙個引數不需要新增符號','>

) as

--定義儲存過程中需要用到的變數

l_count number;

l_name varchar2(50);--型別(值範圍)

l_score number;

begin --開始(begin end中至少有一句語句,可以為null)

res: = '';

--儲存過程內容

select count(*)

into l_count

from t_student stu

where stu.no = student_no;

if l_count > 0

then --if迴圈的固定格式

//修改

update t_student

set score = m_score

where no = m_student_no;

//查詢

select name,score

into l_name,l_score

from t_student stu

where stu.no = m_student_no;

//返回值

res := '學生:'||l_name|| '成績:'||m_score ; --通過||來連線字串與變數值

endif;--if迴圈的固定格式

end ;--結束

儲存過程基本語法

儲存過程可以看作是在資料庫中sql語句的集合,通過執行儲存過程來達到對資料庫的操作,它實現功能和sql語句實現的功能是一樣的,但是兩者在語法上有很大不同,下面介紹儲存過程的用法。1 宣告變數 在儲存過程中宣告變數用declare關鍵字語法如下 declare 示例 declare studentid...

oracle 儲存過程基本語法

1.基本結構 create or replace procedure 儲存過程名字 引數1 in number,引數2 in number is 變數1 integer 0 變數2 date begin end 儲存過程名字 2.select into statement 將select查詢的結果存...

oracle儲存過程基本語法

1.基本結構 create or replace procedure 儲存過程名字 引數1 in number,引數2 in number is 變數1 integer 0 變數2 date begin end 儲存過程名字 2.select into statement 將select查詢的結果存...