oracle中的function 、procedure、packages、package bodies比較

來源:互聯網
上載者:User

標籤:

1  function和procedure的區別

1).可以理解函數是預存程序的一種 2).函數可以沒有參數,但是一定需要一個傳回值,預存程序可以沒有參數,不需要傳回值 3).函數return傳回值沒有返回參數模式,預存程序通過out參數傳回值, 如果需要返回多個參數則建議使用預存程序 4).在sql資料操縱語句中只能調用函數而不能調用預存程序, 5).function必須有傳回值,並且只能有一個傳回值; 6).procedur不叫傳回值,叫帶出,可以帶出多個值; 7).packages、package、bodies是同時存在的,packages可包括function,procedure 8).procedure和function可以單獨存在,也可以放到bodies中.

2  packages、與packagebodies比較

      定義:packae是一種將過程、函數和資料結構捆綁在一起的容器;           由兩個部分組成:外部可視包規範,包括函數頭,過程頭,和外部可視資料結構;           另一部分是包主體(package body),包主體包含了所有被捆綁的過程和函數的聲明、執行、異常處理部分。       簡單說就是packages中只有各個方法的定義,bodies中涉及具體的實現.       所以 packages和packagebodies是一體的,必須同時存在.如果要外部調用的,就在package裡聲明一下,包內調用的,只要在body裡寫就行了。       package可包括function,procedure.       需要先建立package(也就是包的定義),再建立body。       增加包中的過程或者修改包中過程的輸入參數個數等也是要先改package再改body

3  package的作用

      可以簡化應用設計、提高應用效能、實現資訊隱藏、子程式重載

oracle中的function 、procedure、packages、package bodies比較

相關文章

聯繫我們

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