Dev/Database

[Oracle/DBeaver] 프로시저 디버깅 하는법

알굼 2024. 4. 30. 15:40
반응형

프로시저 디버깅 기능은 DBeaver에 없으며, Orange 라는 프로그램에서만 제공하는 기능임. 프로시저 디버깅을 하기 위하여 프로시저 내부에 로그를 남겨서 확인해볼 수 있음.

1. 로그를 저장할 테이블 생성

2. 시퀀스 생성 (생략가능)

3. 로그를 기록하는 프로시저 생성

CREATE OR REPLACE PROCEDURE WRITING_LOG
( 
	PROC_MESSAGE	IN VARCHAR2
) 
AS

  PRAGMA AUTONOMOUS_TRANSACTION;

  SORTING_NUM	NUMBER(10);

BEGIN

    SELECT SEQ_ERRORLOG.NEXTVAL INTO SORTING_NUM FROM DUAL;

    INSERT INTO ERRORLOG (created_date, created_time, message)
    VALUES ( to_char(sysdate, 'YYYYMMDD'), to_char(sysdate, 'HH24MISS'), SORTING_NUM ||' - '|| PROC_MESSAGE);
    
    COMMIT;
END;

 

4. 디버깅하고자 하는 프로시저 내부에 WRITING_LOG 프로시저를 호출하여 로그 기록 하여 확인

WRITING_LOG('PROCEDURE LOG START ' );		-- 단순히 프로그램 시작 여부 체크
WRITING_LOG('PROCEDURE LOG : ' || STUDENT_NUMBER );		-- 프로시저 내부 변수 출력
WRITING_LOG('PROCEDURE LOG : ' || STUDENT_NUMBER || ' ★');		-- 프로시저 내부 변수 출력(2)

 

5. 주의사항

  • AS 로 시작하는 프로시저 변수 선언부가 아닌, BEGIN 으로 시작하는 프로시저 기능구현 부분에 적어주어야 함.
    그렇지 않을 경우 오류로 인해 수정된 프로시저 저장 안됨
반응형