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 으로 시작하는 프로시저 기능구현 부분에 적어주어야 함.
그렇지 않을 경우 오류로 인해 수정된 프로시저 저장 안됨
반응형