PL/Sql Dev 調試Oracle存儲過程、觸發器、函數


本處以調試函數為例,其他的調試與此相同
1.調試位置

  通常情況下,要在pl/sql Dev中調試程序有兩個地方:
  1).新建->測試窗口:

  
  2).在要調試的程序上點擊右鍵->測試

  

2.調試過程

  1).通過調試位置進入測試窗口,如下圖:

  
     其中:點擊1位置(或者按F9)進入調試器,2位置顯示的是程序所聲明的輸入輸出參數,如果是輸入參數,需要在此處填入相應的輸入值,輸出參數會在執行調試完后顯示。
  2).按F9進入開始調制器,如圖所示:

     
     其中:1----中斷調試,2----單步調試,簡單點就是一步一步的執行;綠色的箭頭表示全部運行完這個程序,如果有斷點設置,也可以跳入到下一個斷點。
 
3).單擊單步調試,進入函數,如圖

  
     在此,可以嘗試單步調試,一步一步運行程序
 4).設置斷點
,如圖
  
在文本區域最左側的邊框進行左鍵單擊,如果有行號顯示,也就是行號所在的位置,如圖:

  
     點擊綠色的箭頭,可以直接運行到設置斷點處
 5).
對變量進行監控,如圖

  
     1位置為監控窗口,這個窗口可以把你要監視的變量進行顯示,你把你需要監視的變量復制到這個窗口就可以了,也可以在變量上單擊右鍵->添加變量到監視器(位置2)。
    繼續單步執行,可以看到監控變量(位置3)值的變化。

3.權限問題(ORA-0131)

 1)調試程序時,報錯為ORA-0131:Insufficient privileges,如圖:

  
     原因是用戶權限不夠,是缺失  DEBUG CONNECT SESSION 系統權限所致
 2)解決辦法:以SYS用戶登錄數據庫,執行賦權操作:

1 SQL> grant  DEBUG CONNECT SESSION to user_name;

   注明:1.有網友指出還需賦予DEBUG ANY PROCEDURE的權限,經測試,該權限可不用賦予!
        2.可以從數據字典session_privs表查看該權限相關信息(需要以user_name登錄):

 1 SQL>conn scott/tiger;
 2 SQL> select * from session_privs;
 3 PRIVILEGE
 4 ----------------------------------------
 5 CREATE SESSION
 6 UNLIMITED TABLESPACE
 7 CREATE TABLE
 8 CREATE CLUSTER
 9 CREATE SEQUENCE
10 CREATE PROCEDURE
11 CREATE TRIGGER
12 CREATE TYPE
13 CREATE OPERATOR
14 CREATE INDEXTYPE
15 DEBUG CONNECT SESSION
16 DEBUG ANY PROCEDURE
17 12 rows selected

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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