오라클에서 파일 생성하여 로그남기기(윈도우 기준)
1)오라클에 논리적인 디렉터리를 생성
물론 실제 디렉터리도 없으면 별개로 생성해야 한다.
-- 명령어
create directory DEVLOG as 'd:/dev_log';
-- DEVLOG는 별칭
-- 'd:/dev_log' 는 물리적 위치의 디렉터리
2)다음의 프로시져 생성
CREATE OR REPLACE PROCEDURE PRO_LOGWRITE(P_CONTENT IN VARCHAR2, P_INTRTN OUT INTEGER)
IS
V_OFILENAME VARCHAR2(100) := 'dev' || TO_CHAR(SYSDATE, 'YYYYMMDD') || '.log';
V_OUTPUT UTL_FILE.FILE_TYPE;
V_ISOPEN BOOLEAN;
V_CONTENT VARCHAR2(8000);
BEGIN
P_INTRTN := 0;
V_ISOPEN := UTL_FILE.IS_OPEN(V_OUTPUT);
IF NOT V_ISOPEN THEN
V_OUTPUT := UTL_FILE.FOPEN('DEVLOG', V_OFILENAME, 'A');
V_CONTENT := '[' || TO_CHAR(SYSDATE, 'HH24:MI:SS') || ']' || P_CONTENT;
UTL_FILE.PUT_LINE(V_OUTPUT, V_CONTENT);
UTL_FILE.FCLOSE(V_OUTPUT);
ELSE
DBMS_OUTPUT.PUT_LINE('OPEN A FILE IS IMPOSSIBLE.');
P_INTRTN := -999;
END IF;
EXCEPTION
WHEN UTL_FILE.INVALID_PATH THEN
DBMS_OUTPUT.PUT_LINE('INVALID PATH');
P_INTRTN := -1;
WHEN UTL_FILE.INVALID_MODE THEN
DBMS_OUTPUT.PUT_LINE('INVALID MODE');
P_INTRTN := -2;
WHEN UTL_FILE.INVALID_OPERATION THEN
DBMS_OUTPUT.PUT_LINE('INVALID OPERATION');
P_INTRTN := -3;
END PRO_LOGWRITE;
3)해당 패키지를 실행하면 물리적 위치에 로그파일이 생성됨
※ 참고 블로그 : http://blog.naver.com/galhan/100046104561



최근 덧글