pl sql developer中如何调试存储过程以及调试包中创建的存储过程
學會使用PL/SQL Developer的調試功能,對于編寫復雜的存儲過程,包,funtion...非常有幫助,所以今晚學習了一下:
(1)在body里設置斷點(在要設置斷點的行開始點擊鼠標左鍵就可以)。
(2)右鍵點擊TEST.
會出現如下TEST WINDOWS窗口
在下面紅圈中的位置value欄中輸入參數值,因為varstr是輸入參數,所在要輸入一個值,但是io_cursor是輸入輸出參數,在此做為輸出參數不預輸入值
(3) Debug-->Start.
如果上面操作步驟中在debug——start不能點擊是灰色的,則是因為未給此用戶分配調的權限,
如果點擊執行的話則pl/sql developer 調試存儲過程報錯
note:debugging requires the debug connect session system privilege.
原因是用戶權限不夠,使用以下命令授予權限:
用sysdba角色的用戶名登錄,使用如下命令
GRANT debug any procedure, debug connect session TO username
(4)點擊紅色框的按鈕進行單步調試,自動會跳到存儲過程體內。
(5)把鼠標放到變量上可以顯示出該變量的值,。
也可以在變量外點擊鼠標右鏈選擇Add variable to Watches
此時會在下圖紅圈中列出該變量的值
點南上圖紅色粗線中的按鈕,彈出如下對話框顯示該變量值的詳細信息
下面是創建一個簡單存儲過程的例子
CREATE OR REPLACE PACKAGE u_pg_test?? as
?????? TYPE t_cursor IS REF CURSOR ;
?????? Procedure u_sp_test(varStr varchar2, io_cursor IN OUT t_cursor);
END;
CREATE OR REPLACE PACKAGE BODY u_pg_test AS
Procedure u_sp_test(varStr varchar2, io_cursor IN OUT t_cursor) IS
??? v_cursor t_cursor;
??? varSql varchar2(666);
BEGIN
varSql:='Select * aa where ANAME='''||varStr||'''';
??? OPEN v_cursor FOR varSql;
io_cursor := v_cursor;
END u_sp_test;
END u_pg_test;
總結
以上是生活随笔為你收集整理的pl sql developer中如何调试存储过程以及调试包中创建的存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORA-01940:cannot dro
- 下一篇: 监控GoldenGate进程