blog.leejeongpyo.com

프로그램 자료 블로그

포토로그 마이가든



파일 생성하여 로그남기기 *-- 04.오라클


오라클에서 파일 생성하여 로그남기기(윈도우 기준)

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

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://blog.leejeongpyo.com/tb/1650081 [도움말]