본문 바로가기

BackEnd/DB(SQL)

[Oracle] PL/SQL 로그 사용하기 – DBMS_OUTPUT.PUT_LINE() 완전 정복

728x90

🔍 개요

PL/SQL에서 디버깅이나 실행 흐름을 확인할 때, 가장 많이 사용하는 로그 출력 방법은 DBMS_OUTPUT.PUT_LINE()입니다.
글에서는 DBMS_OUTPUT 패키지를 활용한 로그 출력 방법과 주의할 점, 실무 팁까지 함께 소개하겠습니다!

 

 

 

🔸 1. DBMS_OUTPUT.PUT_LINE() 이란?

OracleDBMS_OUTPUT 패키지는 PL/SQL 블록 실행 텍스트를 버퍼에 출력하는 사용됩니다.
특히 PUT_LINE() 프로시저는 디버깅이나 테스트 유용하게 활용됩니다.

BEGIN
  DBMS_OUTPUT.PUT_LINE('로그 메시지 출력!');
END;

 

 

🔸 2. 출력이 보이지 않는 이유는?

Oracle에서는 기본적으로 DBMS_OUTPUT 출력이 비활성화 되어 있습니다.
출력을 보기 위해서는 SQL 툴에서 활성화 설정을 해야 합니다.

SQL*Plus or SQL Developer 사용

SET SERVEROUTPUT ON;

 

SQL Developer에서 설정하는 방법

  1. 메뉴 → 도구 > 환경설정
  2. 좌측 메뉴에서 데이터베이스 > 고급
  3. "DBMS_OUTPUT 자동 활성화" 체크

또는

  • SQL Developer 화면 하단에 있는 DBMS_OUTPUT 클릭 "연결 추가" 버튼 클릭

 

 

🔸 3. 다양한 사용 예제

▶️ 변수 출력

DECLARE
  v_name VARCHAR2(50) := '홍길동';
BEGIN
  DBMS_OUTPUT.PUT_LINE('이름: ' || v_name);
END;

 

▶️ 루프 디버깅

BEGIN
  FOR i IN 1..5 LOOP
    DBMS_OUTPUT.PUT_LINE('i = ' || i);
  END LOOP;
END;

 

▶️ 조건문과 함께

DECLARE
  v_score NUMBER := 85;
BEGIN
  IF v_score >= 90 THEN
    DBMS_OUTPUT.PUT_LINE('우수');
  ELSE
    DBMS_OUTPUT.PUT_LINE('보통');
  END IF;
END;

 

 

⚠️ 주의사항

  • 출력량 제한: 기본 버퍼 크기는 20000자. SET SERVEROUTPUT ON SIZE 1000000으로 늘릴 있음
  • 대량 출력 성능 저하 주의
  • 프로덕션 환경에서는 로그 파일, 테이블 기록 방식 추천

 

 

🔧 실무

  • 복잡한 로직 디버깅 조건문 내부에 PUT_LINE()사용해 단계별 흐름 확인
  • 테이블 삽입 전후의 데이터를 출력해 흐름 확인
  • 대규모 PL/SQL 디버깅에는 로깅용 테이블과 함께 사용하는 것이 효율적

 

PL/SQL 개발 DBMS_OUTPUT.PUT_LINE()가장 간단하면서도 유용한 디버깅 도구입니다.
실무에선 출력 제한, 성능 등을 고려해 적절히 사용하고, 필요시 로그 테이블과 병행하는 것이 좋습니다.

728x90