PL/Sql Dev 調試Oracle預存程序、觸發器、函數

來源:互聯網
上載者:User

 我們要走的路,有著太多的不確定,他人的一句勸誡,自己的一個閃念,偶爾的得與失,都時刻在改變著我們命運的走向。世事難以預料,遇事無須太執,誰都無法帶走什麼,又何必糾結於某一人、某一時、某一事。只有看開了,想通了,才能隨緣、隨性、隨心而為,不急不躁,不悲不歡,不鹹不淡。

本處以調試函數為例,其他的調試與此相同
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 SEQUENCE10 CREATE PROCEDURE11 CREATE TRIGGER12 CREATE TYPE13 CREATE OPERATOR14 CREATE INDEXTYPE15 DEBUG CONNECT SESSION16 DEBUG ANY PROCEDURE17 12 rows selected

本處以調試函數為例,其他的調試與此相同
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 SEQUENCE10 CREATE PROCEDURE11 CREATE TRIGGER12 CREATE TYPE13 CREATE OPERATOR14 CREATE INDEXTYPE15 DEBUG CONNECT SESSION16 DEBUG ANY PROCEDURE17 12 rows selected
相關文章

聯繫我們

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