더북(TheBook)

패키지 명세나 본문이나 패키지 명칭은 동일하므로 USER_SOURCE에서 패키지를 조회할 때는 항상 ORDER BY 절에 TYPE, LINE을 명시해야 한다는 점을 반드시 기억하자. USER_SOURCE 뷰에는 프로그램 코드가 모두 들어 있어 프로그램 소스도 검색할 수 있다. 예를 들어, 사원 테이블을 사용하는 모든 프로그램과 해당 소스를 보려면 다음과 같이 조회하면 찾을 수 있다.

입력

    SELECT *
      FROM USER_SOURCE
    WHERE TEXT LIKE '%EMPLOYEES%'
        OR TEXT LIKE '%employees%'
    ORDER BY name, type, line;

결과

모든 소스는 text 컬럼에 있으므로 LIKE로 사원 테이블명을 조회한 것이다. 실제 소스에는 사원 테이블명이 대문자로, 혹은 소문자로 들어가 있을 수도 있으므로 OR 연산자와 함께 두 개의 조건을 나열했다. TEXT 컬럼 값을 보면 사원 테이블을 사용한 모든 소스가 출력 되었다.

참고로 앞의 SQL문의 조건을 UPPER(TEXT) LIKE ‘%EMPLOYEES%’ 혹은 LOWER(TEXT) LIKE ‘%employees%’ 형태로 작성하지 않은 이유는 UPPER나 LOWER 함수로 소스를 변환하는데 부하가 걸릴 수 있기 때문이다. 실제 프로젝트에서는 프로그램 소스의 양이 매우 방대한데 소스 전체를 대문자나 소문자로 변환한 다음 특정 단어를 찾게 되면 많은 부하가 걸리기도 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.