plsql知識梳理-預存程序和java調用

來源:互聯網
上載者:User

標籤:

1 預存程序介紹

         預存程序是指用於特定操作的pl/sql塊,是由流量控制和sql語句書寫的過程。
         預存程序經編譯和sql最佳化後儲存在資料庫伺服器中,使用時候只需要調用即可。

2 預存程序的優點

       1 使用預存程序,可以實現預存程序設計和編碼工作分開進行,只要將預存程序名,參數,以及返回資訊告訴編碼人員即可。

       2 使用預存程序可以減少sql注入式攻擊,提供系統的安全性。

       3 執行預存程序的使用者要具有一定的許可權才能使用預存程序。沒有資料操作許可權的使用者只能在系統控制下間接的存取資料。

       4 預存程序的代碼直接放在了資料庫中,一般由用戶端直接通過預存程序的名稱來進行調用,簡化用戶端的操作邏輯。

3 預存程序的文法

          預存程序 包含三部分 聲明,執行部分,異常。可以有無參數的或帶參數的預存程序。

         預存程序的定義:

          Create  [or replace]  procedure procedure_name

          [(parameter1[mode] datatype1,parameter2 [model] datatype2…)]

          IS[As]

          Begin

           Pl/sql block;

          End [procedure_name]

       其中: procedure_name是預存程序的名字,parameter用於指定參數,model用於指定參數模式,datatype用於指定參數類型, IS [AS]用於開始PL/SQL代碼塊。

       註:1, 當定義預存程序的參數時,只能指定資料類型,不能指定資料長度。

               2, 建立預存程序時,既可以指定預存程序的參數,也可以不提供任何參數。

               3, 預存程序的參數主要有三種類型:輸入參數(IN)、輸出參數(OUT)、輸入輸出參數(IN OUT),其中IN用於接收調用環境的輸入參數,OUT用於將輸出資料傳遞到調用環境,IN OUT不僅要接收資料,而且要輸出資料到調用環境。

4  一個簡單的預存程序+調試

  

寫一個預存程序--修改其中的資料

select count(*)  from table1 where name=‘weiguo‘ 的查詢結果是 count(*)=0

 

如果涉及到兩個或以上的輸入參數,如:

5  預存程序和java程式的介面操作

     5.1   無傳回值的預存程序

           

 

   查詢資料庫-顯示

     5.2  有傳回值的預存程序(非列表-單個出參)

    

 

 

 

  注意,這裡的proc.getString(2)中的數值2並非任意的,而是和預存程序中的out列對應的,如果out是在第一個位置,那就是proc.getString(1),如果是第三個位置,就是proc.getString(3),當然也可以同時有多個傳回值,那就是再多加幾個out參數了。

  由於oracle預存程序沒有傳回值,它的所有傳回值都是通過out參數來替代的,列表同樣也不例外,但由於是集合,所以不能用一般的參數,必須要用pagkage了。

 返回列表的預存程序對我來說,不常用。要通過建包+遊標的方式來實現。


plsql知識梳理-預存程序和java調用

聯繫我們

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