Oracle--plsql創建存儲過程


子程序的介紹:

命名的 PL/SQL ,能夠接受傳遞的參數,能夠被調用。
子程序的類型

  過程:用於執行某項操作

  函數:用於執行某項操作並返回值

基於標准的PL/SQL塊結構

  聲明部分

  可執行部分

  異常部分(可選)


優點:

模塊化

將程序分解為多個邏輯模塊

可重用性

子程序在被執行之后,被存儲在數據庫中,可以在任意數目的

應用程序中使用

可維護性

  子程序簡化了維護

提高性能

用戶直接使用共享池中解析后的程序


存儲過程:

命名的 PL/SQL
能夠接受參數
能夠被重復調用
用於執行某項操作
存儲在數據庫中


形式參數與實際參數

形式參數:在子程序說明的參數列表中聲明的變量

  CREATEPROCEDURE raise_sal(

  p_idNUMBER,   p_amount NUMBER)

  ...

  ENDraise_sal;

實際參數:在子程序被調用的參數列表中引用的變量或表達式

  raise_sal(v_id,2000)



創建帶參數的過程



參數模式IN 是默認的參數模式。換句話說,如果未指定一個參數的模式,該參數就被認為是一個 IN 參數。參數模式 OUT和 IN OUT 必須在參數的前面被明確指定。

一個IN 模式的形式參數不能被指定一個值,就是說,一個在過程體中的 IN 參數不能被修改。

一個OUT 或 IN OUT 參數在返回主叫環境之前必須被指定一個值。

IN參數可以在參數列表中被指定一個默認值。OUT 和 INOUT 參數不能被指定默認值。

默認情況下IN 參數是引用傳遞,而 OUT 和 IN OUT 參數是值傳遞。



聲明主機變量,執行raise_sal過程


用 VARIABLE命令創建主機變量。

調用 raise_sal過程,提供這些主機變量作為 OUT 參數。

在 EXECUTE命令中引用主機變量時,注意冒號 (:) 的使用。 


傳遞參數的方法

位置:實際參數與形式參數排列的順序相同
指定:實際參數聯合其相應的形式參數以任意順序排列
組合:實際參數的排列一些用位置,一些用指定 


異常處理:

當一個異常發生時,控制立即轉向塊的異常部分。如果異常被處理,塊終止運行,並且控制轉向主叫程序。


刪除存儲在數據庫中的過程

DROP PROCEDURE procedure_name 


權限授予:

為了能夠在子程序中引用和訪問不同方案中對象,必須被明確地授予 

 訪問引用對象的權限,不能通過角色授權。


PLSQL對象信息存儲:

通過以下方法查看PL/SQL對象的存儲信息:

user_objects
user_source
desc object_name
show err
dbms_output

通過user_objects視圖查看PL/SQL對象的信息;

通過user_source視圖查看PL/SQL對象的程序文本;

desc查看對象的結構;

showerr查看對象在編譯過程中出現的錯誤;

通過dbms_output包查看PL/SQL對象的調試信息;


USER_OBJECTS:



USER_SOURCE:



USER_ERROR:












免責聲明!

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



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