首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 存儲過程除錯利器:DBMS_OUTPUT.PUT_LINE 實戰速查

     編輯:Oracle 資料庫基礎

兩步驟啟用控制台輸出

  1. SQL*Plus 執行:SET SERVEROUTPUT ON (或 SET SERVEROUTPUT ON SIZE 1000000 調大緩衝)。
  2. 存儲過程中插入:DBMS_OUTPUT.PUT_LINE('變數值: ' || var_name);

完整範例

CREATE OR REPLACE PROCEDURE test_debug IS
    v_emp_name VARCHAR2(10);
    CURSOR c1 IS SELECT ename FROM emp WHERE deptno = 20;
BEGIN
    OPEN c1;
    LOOP
        FETCH c1 INTO v_emp_name;
        EXIT WHEN c1%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE('處理員工: ' || v_emp_name);
    END LOOP;
    CLOSE c1;
END test_debug;
/

-- 執行驗證
SET SERVEROUTPUT ON
EXEC test_debug;

輸出結果

處理員工: SMITH
處理員工: JONES
處理員工: SCOTT
處理員工: ADAMS
處理員工: FORD

PL/SQL procedure successfully completed.

進階技巧

  • 格式化輸出:DBMS_OUTPUT.PUT_LINE(RPAD('欄位',20) || ' = ' || value);
  • 條件除錯:包裝成 DEBUG(p_msg VARCHAR2, p_level INT DEFAULT 1) 程序,依環境變數控制輸出層級。
  • 大量資料:SET SERVEROUTPUT ON SIZE UNLIMITED (11g+) 避免緩衝區溢位。
  • SQL Developer / TOAD:內建「鉛筆圖示」除錯模式,支援中斷點、變數監視、逐步執行,遠優於 PRINT 除錯。

總結

DBMS_OUTPUT.PUT_LINE 是零依賴、即寫即用的輕量除錯手段,適合快速驗證邏輯、變數值;複雜場景請升級使用 IDE 內建除錯器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved