Oracle PL/SQL開發利器-Toad應用總結(一)-PL/SQL Program基本編寫、調試

使用Toad進行Oracle PL/SQL Program的編寫及調試需掌握如下視圖應用:

(1)Schema Broswer
    模式瀏覽器(Schema Browser)可以快速訪問數據字典,瀏覽數據庫中的表、索引、存儲
過程。Toad 提供對數據庫的快速訪問,使用極爲方便,用戶界面簡潔,結構安排合理。當點擊
一個單獨的數據庫對象,Toad 立即顯示此對象的詳細信息。例如,點一個數據庫的表,所有和
此表相關的索引、約束、存儲過程、SQL 語句、表中的數據以及和其他表的相互引用關係都在
同一界面顯示出來。所有針對數據庫對象的操作都可以在Schema Browser 一個窗口中進行。
  開發人員查詢Oracle數據庫當前用戶連接的所有對象信息,開發中可由這裏瀏覽各種對象,即Procedure、Function、Package,單擊某個對象即走讀相關代碼,右擊可實現重新編譯等操作,雙擊某對象進入對應的開發編輯視圖,可進行修改、調試、語句跟蹤性能分析等操作;
 (2)SQL Editor
     SQL 編輯器(SQL Editor)的主要功能是編輯、運行和調整SQL 語句。TOAD 的高級編
輯窗口包括衆多的特性來提高開發人員編寫SQL 語句的產品化程度。例如,簡單地生成代碼模
板,在編寫SQL 前自動發現包的內容和列的名字等等。SQL 編輯器包括一個編輯窗口和運行結
果窗口,允許開發人員在編輯的過程中測試運行結果。SQL 編輯器中不僅包括標準的編輯命令,
也包括一些增強的功能,如快速查詢表中的字段、將SQL 語句的內容格式化等等。這個窗口可
以處理大到4GB 的內容,對大的開發項目來說非常有用。便捷的書籤可以讓開發人員非常容易
地找到相關位置。在運行結果窗口可提供用戶定義的配置功能,支持LONG 和LONG RAW 列,
可以將數據卸出到磁盤、打印數據、編輯數據等等。
  (3)Procedure Editor
      存儲過程編輯器(Procedure Editor)的主要功能是編輯、編譯、測試、調試存儲過程和觸
發器。TOAD 提供語法標識、錯誤標識和其他很多易於使用的功能,如在彈出窗口顯示錶名、列
名和Oracle 函數。和其他的 PL/SQL 編輯工具不同,TOAD 允許在一個文件中操作多個數據
庫對象,可以編譯一個對象、編譯多個對象、編譯到當前光標、從光標開始編譯。在運行出現錯
誤時,存儲過程停止到有問題的語句。用戶可以使用快捷方式或模板來快速編寫PL/SQL,也可以
根據需要生成自己的模板。使用Toad 可以非常方便地進行編輯工作,可如設置書籤、取消註釋、
格式化SQL 語句等等。
  寫兩個實例如下:
  •   Procedure示例:
 
  1. CREATE OR REPLACE PROCEDURE SCOTT.calc_totalTemp (fudge_factor_in IN NUMBER) 
  2. IS 
  3.   subtotal NUMBER := 0; 
  4.   PROCEDURE compute_running_total (increment_in IN PLS_INTEGER) 
  5.   IS 
  6.   BEGIN 
  7.   subtotal := subtotal + increment_in * fudge_factor_in; 
  8.   END
  9. BEGIN 
  10.   FOR month_idx IN 1..12 
  11.   LOOP 
  12.     compute_running_total (month_idx); 
  13.   END LOOP; 
  14.   DBMS_OUTPUT.PUT_LINE('Fudged total for year: ' || subtotal); 
  15. END
  •  Function示例

 

  1. CREATE OR REPLACE FUNCTION SCOTT.wordcountTemp (str IN VARCHAR2) 
  2. RETURN PLS_INTEGER 
  3. AS 
  4. /* words PLS_INTEGER := 0; ***Commented out for intentional error*** */ 
  5. words PLS_INTEGER := 0; 
  6. len PLS_INTEGER := NVL(LENGTH(str),0); 
  7. inside_a_word BOOLEAN; 
  8. BEGIN 
  9. FOR i IN 1..len + 1 
  10. LOOP 
  11. IF ASCII(SUBSTR(str, i, 1)) < 33 OR i > len 
  12. THEN 
  13. IF inside_a_word 
  14. THEN 
  15. words := words + 1; 
  16. inside_a_word := FALSE
  17. END IF; 
  18. ELSE 
  19. inside_a_word := TRUE
  20. END IF; 
  21. END LOOP; 
  22. RETURN words; 
  23. END
  (4)PL/SQL Debugger
     Toad 提供強大易用的PL/SQL 調試功能,可以節省開發人員在大型項目中用於開發和測
試的寶貴時間,提高應用開發的質量。在存儲過程開發的過程中,Toad 可以逐行編輯、調試和
運行代碼。運行時可以根據需要輸入參數,觀察相關參數的變化來檢查存儲過程的正確性。在調
式過程中,Toad 可以通過窗口顯示所有的斷點、參數, 調用堆棧和輸出參數。使用Toad,非
常容易檢測到存儲過程的錯誤,開發人員可以一步一步運行PL/SQL 語句來識別問題。調試會話
可以和其他程序會話同時進行。
    我在剛開始使用Toad對Procedure和Function進行調試的時候,出現了調試按鈕置灰無法進行調試、點擊調試按鈕後程序直接跑完沒有在斷點處停住等情況,在網上查了很久,大都對這個問題都沒有人進行正確的解決;
    解決Toad調試的問題的方法如下:
    首先確認一點:你當前Toad的用戶連接是否爲Sys、System等DBA用戶,如果是的話,就會出現Toad Debug按鈕是可用的,斷點也可以設置,但是程序直接跑完的情況,應該是Toad不支持DBA用戶直接調試PL/SQL程序;
    然後,將用戶連接改爲其他用戶例如Scott重連Toad,當Toad在此用戶連接下,直接進行調試PL/SQL是不行的,因爲該用戶默認是沒有Debugger權限的,在此情況下Debug按鈕也是置灰的;
    然後,執行如下語句,(假設當前Toad連接Oracle的用戶爲Toad):
 
  1. grant debug connect session to scott; 
  2. grant debug any procedure to scott; 
  最後,就跟在Eclipse Debug Java程序差不多了,即設置斷點,點擊Toad上的按鈕Execute PL/SQL with Debugger,那就開始調試吧!
   (5)Connection Color-Coding
  Toad 允許同時連接多個數據庫,便於在多個數據庫之間進行切換和比對。但是這樣也增加
了在數據庫上進行誤操作的風險。Connection Color-Coding 允許用戶在定義一個新的數據庫連
接時,爲該連接指定一種顏色,以便作爲醒目提醒。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章