USER_SOURCE 뷰에 어떤 정보들이 있고 어떤 식으로 활용하는지 배웠으므로 이제 이 뷰로 소스를 백업하는 방법을 알아 보자. 이 장 첫 부분에서도 언급했듯이, 프로젝트를 수행하다보면 자신이 개발했던 소스를 엉뚱한 이름으로 덮어쓸 수도 있고 아예 소스가 삭제되는 일도 종종 발생한다. 그래서 필자는 매일 퇴근 전에 일자별로 소스를 백업했었는데 USER_SOURCE 뷰를 사용해 매우 간편하게 처리했다.
처리하는 방식은 다음과 같았다. CREATE TABLE ~ AS 구문을 사용해 일자별로 백업 테이블을 생성했다. 예를 들어 오늘이 2015년 1월 6일이라고 한다면 다음과 같이 이름에 일자를 포함시켜 백업 테이블을 만들었다.
입력
CREATE TABLE bk_source_20150106 AS
SELECT *
FROM USER_SOURCE
ORDER BY NAME, TYPE, LINE;
결과
table BK_SOURCE_20150106이(가) 생성되었습니다.
2015년 1월 6일 퇴근할 때 BK_SOURCE_20150106란 이름으로 테이블을 만들고 다음 날인 1월 7일에 퇴근할 때는 BK_SOURCE_20150107이란 테이블을 만드는 것이다. 이렇게 해놓으면 특정 프로그램 소스가 문제에 생기더라도 일자별 백업한 내역이 있으므로 언제든지 복구할 수 있는 것이다.
입력
SELECT *
FROM bk_source_20150106;
결과
USER_SOURCE 뷰를 조회할 때 ORDER BY 절에 NAME, TYPE, LINE 컬럼을 명시했기 때문에BK_SOURCE_20150106 테이블에는 프로그램, 타입, 라인별로 데이터가 정렬되어 들어가 있음을 알 수 있다. 만약 특정 프로그램에 문제가 발생했다면 해당 프로그램 명으로 USER_SOURCE 뷰를 조회한 다음 TEXT 컬럼 내용을 복사해 붙여 넣고 다시 컴파일하면 해당 프로그램을 복구할 수 있다.