더북(TheBook)

02 | 디버깅 기법

디버깅이란 프로그램 로직의 정확성이나 논리적 오류, 즉 버그를 찾아내는 일련의 과정을 말하는데, 오라클 DB에서 프로그램은 함수나 프로시저 형태이므로 디버깅을 한다는 것은 이런 함수나 프로시저를 디버깅 한다는 것이다. 함수는 매개변수를 받아 특정 데이터를 조회해 반환하는 형태이므로, 대부분 한 두 개의 SELECT 문장으로 이루어져 있어 디버깅할 일이 많지는 않다. 반면 프로시저는 특정 업무에 대한 로직을 처리하기 위해 다량의, 그리고 다양한 형태의 DML 문장이 사용되므로 소스 양도 함수에 비해 많고 논리적 오류가 발생할 여지가 크므로 프로시저를 디버깅할 때가 많다.

다른 프로그래밍 언어와 마찬가지로 오라클 프로그램도 여러 가지 툴로 프로그램을 개발하는데 이런 프로그램 대부분은 자체 디버깅 기능이 내장되어 있다. 툴에 따라 차이점이 있지만 툴에서 제공하는 디버깅 기능을 이용하면 GUI 환경에서 편리하게 디버깅을 할 수 있다. 하지만 이 책은 툴의 기능을 설명하는 책이 아니므로 툴 고유의 디버깅 기능은 배제하고 오라클에서 제공하는 시스템 패키지나 다른 방법을 사용해 디버깅하는 방법을 소개하겠다.

본격적으로 디버깅에 대해 알아보기 전에 디버깅할 대상 프로그램이 있어야 한다. 이전 절에서 껍데기만 만들었던 CH17_SRC_TEST_PKG 패키지의 내용을 채워야 하는데, 그 전에 먼저 사용할 테이블과 인덱스를 만들어 보자.

입력

    CREATE TABLE ch17_sales_detail (
                 channnel_name VARCHAR2(50),
                 prod_name     VARCHAR2(300),
                 cust_name     VARCHAR2(100),
                 emp_name      VARCHAR2(100),
                 sales_date    DATE,
                 sales_month   VARCHAR2(6),
                 sales_qty     NUMBER   DEFAULT 0,
                 sales_amt     NUMBER   DEFAULT 0 );

결과

    table CH17_SALES_DETAIL이(가) 생성되었습니다.

입력

    CREATE INDEX idx_ch17_sales_dtl ON ch17_sales_detail (sales_month);

결과

    index IDX_CH17_SALES_DTL이(가) 생성되었습니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.