728x90
🔍 개요
PL/SQL에서 디버깅이나 실행 흐름을 확인할 때, 가장 많이 사용하는 로그 출력 방법은 DBMS_OUTPUT.PUT_LINE()입니다.
이 글에서는 DBMS_OUTPUT 패키지를 활용한 로그 출력 방법과 주의할 점, 실무 팁까지 함께 소개하겠습니다!
🔸 1. DBMS_OUTPUT.PUT_LINE() 이란?
Oracle의 DBMS_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에서 설정하는 방법
- 메뉴 → 도구 > 환경설정
- 좌측 메뉴에서 데이터베이스 > 고급
- "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
'BackEnd > DB(SQL)' 카테고리의 다른 글
[Oracle] 테이블 컬럼명, 데이터 타입, 길이 변경하는 방법 정리 (1) | 2025.05.30 |
---|---|
[Oracle] ORA-01438 오류 해결 – 숫자 컬럼 크기 초과 문제 잡기 (0) | 2025.05.22 |
[Oracle] 오라클 TO_DATE 함수 – 문자열을 날짜로 정확하게 변환하는 방법 (0) | 2025.05.20 |
ORA-01843: 지정한 월이 부적합합니다 – 날짜 포맷 불일치 해결법 총정리 (2) | 2025.05.19 |
Oracle JOIN 문법 총정리: ANSI vs Oracle 방식 완전 정복 (1) | 2025.05.13 |