子程序的介紹:
過程:用於執行某項操作
函數:用於執行某項操作並返回值
聲明部分
可執行部分
異常部分(可選)
優點:
將程序分解為多個邏輯模塊
子程序在被執行之后,被存儲在數據庫中,可以在任意數目的
應用程序中使用
子程序簡化了維護
用戶直接使用共享池中解析后的程序
存儲過程:
形式參數:在子程序說明的參數列表中聲明的變量
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視圖查看PL/SQL對象的信息;
通過user_source視圖查看PL/SQL對象的程序文本;
desc查看對象的結構;
showerr查看對象在編譯過程中出現的錯誤;
通過dbms_output包查看PL/SQL對象的調試信息;
USER_OBJECTS:

USER_SOURCE:

USER_ERROR:

