oracle procedure預存程序

來源:互聯網
上載者:User

標籤:stat   llb   into   異常   output   注意   視窗   code   函數   

 

1、基本結構
CREATE OR REPLACE PROCEDURE 預存程序名字(    參數1    IN NUMBER,    參數2    IN NUMBER       ) IS/AS變數1    INTEGER :=0;變數2    DATE;BEGIN...END 預存程序名字

 

2、SELECT INTO STATEMENT

  將select查詢的結果存入到變數中,可以同時將多個列(欄位)儲存到多個變數中,必須有一條記錄,否則拋出異常(如果沒有記錄,拋出NO_DATA_FOUND)

例子:

BEGIN     SELECT col1,col2 into 變數1,變數2 FROM typestruct where xxx;     EXCEPTION         WHEN NO_DATA_FOUND THEN      ROLLBACK;     RAISE; END; 

 

3、IF判斷
IF    條件1    THEN     Do Someting    ELSIF    條件2    THEN        Do Someting    ELSIF    條件3    THEN        Do Someting    ELSE        Do SometingEND IF; 

 

4、while迴圈
WHILE V_TEST=1 LOOP     BEGIN         XXXX     END; END LOOP; 
5、變數賦值
V_TEST := 123; 
6、用for    in使用cursor(遊標)
...     IS         CURSOR cur IS SELECT * FROM xxx;     BEGIN         FOR cur_result in cur LOOP             BEGIN             V_SUM :=cur_result.列名1+cur_result.列名2             END;         END LOOP;     END; 
7、用pl/sql developer debug

  串連資料庫後建立一個Test Window

  在視窗輸入調用SP的代碼,F9開始Debug,CTRL+N單步調試

 

注意事項:

1)預存程序參數不帶取值範圍,in表示傳入,out表示輸出;

2)變數可帶取值範圍,後面接分號;

3)在判斷語句前最好先用count(*)函數判斷是否存在該條操作記錄

4)用select...into...給變數賦值

5)在代碼中拋出異常用RAISE;通常的用法:

EXCEPTION    WHEN OTHERS THEN        ROLLBACK;        RAISE;/*異常分很多類,如NO_DATA_FOUND。OTHERS處本應該寫異常名稱,如果不想把異常分得那麼細,可以籠統一點用OTHERS來捕獲,即所有異常均用OTHERS來捕獲。WHEN OTHERS THEN 表示是其它異常。RAISE表示拋出異常,讓User可以看到。*/

6)AS/IS的區別

  在試圖(VIEW)中只能用AS不能用IS

  在遊標(CURSOR)中只能用IS不能用AS

7)輸出變數賦值有兩種,一種是直接:=,還有一種就是SELECT INTO

8)顯示調試資訊

  a.預存程序中在必要的位置添加

DBMS_OUTPUT.put_line(‘HI‘);

  b.開啟DBMS_OUTPUT

show serveroutput;set serveroutput on;

9)刪除PROCEDURE

DROP PROCEDURE procedure_name;

 

oracle procedure預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.