본문 바로가기

주절주절

오라클 지정한 경로에 파일 생성

 

 

 

 

 

 

 

 

 

1. 파일이 생성 될 디렉토리 경로 설정을 해준다

 

CREATE DIRECTORY LOG_DIR AS 'C:\temp';  --LOG_DIR은 디렉토리 이름으로 자유롭게 지정

GRANT READ ON DIRECTORY LOG_DIR TO PUBLIC;  --읽기권한부여

 

GRANT WRITE ON DIRECTORY LOG_DIR TO PUBLIC;  --쓰기권한부여

 

 

2. 지정한 경로에 파일을 생성


CREATE OR REPLACE PROCEDURE PL_WriteFile(fname varchar2)
     IS

      v_output UTL_FILE.FILE_TYPE;
      v_result VARCHAR2(4000);
       
      CURSOR sql_cur IS
      SELECT empno, ename, deptno
      FROM emp;
   
     BEGIN

      v_output := UTL_FILE.FOPEN('LOG_DIR', fname, 'A');-- LOG_DIR의 경로에 fname이라는 이름의 파일생성

      FOR v_cur IN sql_cur LOOP
        v_result := v_cur.empno||' '||v_cur.ename||' '||v_cur.deptno;
        UTL_FILE.PUT_LINE(v_output, v_result); --한줄마다 v_result 입력되는 파일이 생성 됨
      END LOOP;

      UTL_FILE.FCLOSE(v_output); --마지막으로 FCLOSE로 닫아주면 파일 생성 완료

     EXCEPTION
      WHEN UTL_FILE.INVALID_PATH THEN
        DBMS_OUTPUT.PUT_LINE('INVALID PATH');
      WHEN UTL_FILE.INVALID_MODE THEN
        DBMS_OUTPUT.PUT_LINE('INVALID MODE');
      WHEN UTL_FILE.INVALID_OPERATION THEN
        DBMS_OUTPUT.PUT_LINE('INVALID OPERATION');
       
    END;
    /