oracle預存程序

來源:互聯網
上載者:User

標籤:

簡述

儲存在資料庫中命名的可傳若干參數且通常沒有傳回值的PL/SQL程式塊.不能直接被sql調用執行,而是通過execute命令或PL/SQL程式塊中調用執行.

 

文法格式

Create [or replace] procedure 預存程序名稱 [(參數)] is|as

Begin

主體代碼

[exception

異常處理語句]

End [名稱];

說明: 1.or replace中的or不能省略

 2.Create or replace沒有就建立,有就覆蓋原有的

 3.建立之後,主體語句只是被編譯並沒有被執行

 

調用執行

1.execute命令

Execute 預存程序名稱;

 

2.用PL/SQL程式塊

Begin

...

預存程序名稱;

End;

 

參數模式

1.in模式(輸入型別參數,參數由調用者傳入,且只能被預存程序讀取)

參數名 in 資料類型 [default 預設參數值]

使用default說明:

a.使用default可以給參數設定預設值.

b.當使用預設值時,想要給一些帶預設值的傳值,另一些不傳值的時候,此時用按名稱  傳值的方式比較方便

 

傳入參數的三種方式

A.指定名稱傳遞 (參數名=>傳入的參數值...,參數名=>傳入的參數值)

B.按位置傳遞 (參數值...,參數值)

C.混合方式傳遞 將上面兩種方式結合起來,不過要先按位置傳遞,後面按名稱傳遞

(參數值...,參數值,參數名=>傳入的參數值...,參數名=>傳入的參數值)

 

2.Out模式(輸出型別參數,參數值可以傳遞到當前預存程序以外的環境中)

變數名 out 資料類型

 

調用out模式預存程序:

A.在PL/SQL塊中調用

在declare部分聲明變數,將參數傳入之後就可以直接使用

B.用execute命令調用

使用variable定義變數(variable 變數名 資料類型)

Execute 預存程序名(參數)(Execute 預存程序名(15,:變數名);

說明:15是in的值,直接傳值即可,後面是out類型的值,要使用定義的變數接收,  且前面要加上:

然後使用print或select語句輸出值

Print 變數名 變數名; 

Select :變數名,:變數名 from dual;

 

3.In out模式(將in模式和out模式結合起來)

變數名 in out 資料類型;

 

oracle預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.