oracle存儲過程創建-調試-調用-刪除(一)


存儲過程(Stored Procedure)是一組為了完成特定功能的SQL 語句集,經編譯后存儲在數據庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象,任何一個設計良好的數據庫應用程序都應該用到存儲過程。

優點:效率高,復用性強,安全性高

存儲過程的結構:oracle的存儲過程包含三部分:過程聲明,執行過程部分,存儲過程異常(可省略)。

 

接下來我們來詳細講述一下存儲過程

 

存儲過程的語法

create:創建 關鍵字

or replace: 如果此名稱的存儲過程已經創建了,那么用這兩個關鍵字可以替換同名的存儲過程,不用會報錯,可以省略。

procedure:存儲過程  意思是創建的是一個存儲過程

pro_name: 存儲過程的名稱。

(參數): 存儲過程的參數,可以省略,有參的存儲過程在寫參數的時候要指定參數的數據類型。

as: 也可以寫成is。

plsql_sentences: pl/sql語句,他是存儲過程功能實現的主體。

dowith_sentences: 異常處理語句,也是pl/sql語句,可以省略。

1 create [or replace] procedure pro_name (參數) as
2 begin
3     plsql_sentences;
4 [exception]
5     [dowith_sentences;]
6 end pro_name;

存儲過程的學習

存儲過程的創建(pl/sql)

首先打開plsql軟件,在左側找到procedures文件夾,里面的就是你的存儲過程,在上面右鍵--新建--輸入存儲過程的名字和參數(名字在里面也可以改,參數可以暫時不管)

 

 

無參存儲過程

上面的介紹對於一些初學者可能不那么好理解,那么我們先用一個例子來讓大家認識一下存儲過程。

首先我們在oracle中創建一個表(表名T_USER)表結構如下

例子:寫一個無參存儲過程,向t_user表中添加一條數據。

1 create or replace procedure test1 as
2 begin
3   insert into t_user values('1','張三',22,1,'13718770909',sysdate);
4   commit;
5 end test1;

要注意:test1為存儲過程的名字,commit意思是提交事務,end后面跟的一定是存儲過程的名字。

有參存儲過程

那么通過上面的例子我們就基本知道了無參存儲過程的大概。那么接下來讓我們看看有參存儲過程是怎么寫的。

首先我們先介紹一下存儲過程的參數

存儲過程可以接受多個參數,參數模式包括三種:

in:輸入類型 默認 不可修改 可以省略

out:輸出類型 只能等待被賦值  不可省略

in out:兼顧上面兩種 不可省略 不建議使用這種,如果遇到這種情況,完全可以拆開成兩個參數

例子:寫一個有參的存儲過程,向t_user表中添加一條數據。要求插入的數據都要用參數傳遞過來的數據。

1 create or replace procedure test2(id varchar2,name varchar2,age number,sex number,tel varchar2,create_time date) is
2 begin
3   insert into t_user values (id,name,age,sex,tel,create_time);
4   commit;
5 end test2;

要注意:test2為存儲過程的名稱,每個參數要表明類型,但是不能指定長度,參數的名稱可以隨便起。

存儲過程的檢查

一個存儲過程在創建之后,需要我們驗證一下語法是否正確,方法是點擊下圖的執行按鈕(齒輪) 如果最下面出現了編譯成功,那么說明此存儲過程語法上沒有問題。如果有報錯,就根據提示信息進行修改即可。

存儲過程的調用

寫好的存儲過程,在oracle中怎么調用呢?

首先打開一個sql操作頁面(文件--新建-sql窗口),根據我們所寫的存儲過程的參數,可以使用call關鍵字進行調用

比如上面兩個例子(test1,test2),他們的調用方法分別為

1 --無參調用方法
2 call test1()
3 --有參調用方法
4 call test2('11','張三',11,0,'13567667897',sysdate)

存儲過程的刪除

當一個存儲過程不再被需要的時候,要將此過程從內存中刪除,以釋放相應的內存空間,方法一共有兩種

1. 語句刪除L:drop procedure test1 //test1是存儲過程的名稱

2. 使用pl/sql工具,直接在左側的procedures文件夾中找到那個存儲過程文件,右鍵刪除即可。

存儲過程的調試

在左側的procedures文件夾中找到你要調試的存儲過程文件,右鍵選擇測試,之后按下圖操作

 

上面的紅框中的五個按鈕 從左到右分別為:運行,單步進入(重要),單步跳過,單步退出,運行到下一個異常,一般我們只用到單步進入就可以了。

操作順序為:點擊運行按鈕,之后一步步點擊單步進入按鈕即可。

 

特別注意:我們在存儲過程中可以寫dbms_output.put_line('ok'); 括號中的ok為參數  類似於java里的System.out.println("ok"); 可以在DBMS輸出中看到

 

 

接下來會繼續更新存儲過程中的一些其他的知識及技巧和用法。

 

 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM