[Oracle 10g] UTL_FILE 패키지..
◆ UTL_FILE Package |
. UTL_FILE 패키지를 사용하여 PL/SQL에서 파일의 입출력을 수행 할 수 있다.
표준 출력에는 DBMS_OUTPUT 패키지를 사용한다. Oracle 8i이전이라면 초기화 파라미터 UTL_FILE_DIR를 설정해야 한다
프로그램의 Input과 output으로서, 서버OS 상의 텍스트파일을 사용하는 것으로, PL/SQL프로그램 이외의 프로그램 정보를 뿌려주는것이 가능합니다.
UTL_FILE 패키지는 텍스트파일의 Open, Close, Read, Write의 기능을 제공합니다.
Oracle7.3부터 OS파일에 대한 쓰기,읽기를 지원하였으며 Oracle9iR2 부터 파일의 복사, 이동, 삭제 및 디렉토리 오브젝트의 이용도 가능해졌습니다.
주의사항 안전을 보증하기 위해서, 파일에 접근하려면 초기화 파라메타 파일 UTL_FILE_DIR에 접근대상의 폴더(디렉토리)를 지정해 둘 필요가 있습니다.
개행코드는 자동부가/삭제됩니다. - 한개의 행은 최대 1024바이트(개행코드 포함)가 될 수 있습니다. - Oracle8.0.5 부터 32767바이트(개행코드 포함) 까지 가능합니다. ◈FOPEN 프로시져로 크기를 지정 할 수 있습니다. |
◆ UTL_FILE_DIR 편 |
.인스턴스를 시작한 OS 사용자가 지정한 디렉토리를 의미하며 파일에 대해서 OS레벨으로 I/O를 허가할 필요가 있다. 또한 모든 디렉토리를 대상으로 하기 위해 「UTL_FILE_DIR = *」으로 지정하는 경우 보안에 취약할 수 있으므로 되도록 특정위치를 지정하도록 한다.
예) UTL_FILE_DIR = C:\TEMP
오라클 패키지중. dbms_logminer_d 라는 패키지를 이용하여 오라클 dictionary를 파일로 받으려는 경우 파일생성 위치를 패키지에서 utl_file_dir에 설정된 경로내에서만 지정할 수 있게 된다. 복수의 디렉토리를 지정할 경우는, 사이에 다른 파라미터가 들어오지 않고 UTL_FILE_DIR 을 복수행 지정합니다. 예)UTL_FILE_DIR = C:\TEMP UTL_FILE_DIR = C:\TEST
서로 다른 파라미터가 들어 있는 경우 맨 뒤에 지정한 경로만을 지정한 것으로 처리된다.
준비작업
■ 디렉토리 작성 디렉토리를 작성할 경우에 OS 의 DBA 인 유저(통상은 oracle)로 디렉토리를 작성한다. root 로 작성하는 경우에는, chown, chgrp, chmod 등에 의해 읽고 쓰기의 권한을 올바르게 설정한다. 파일의 I/O는 서버 프로세스에 의해서 행해지므로 그 프로세스의 오너(oracle)가 읽고 쓰기할 수 있어야 한다. 작성과 권한의 설정예 (root 에 의한 조작:권한만 있으면 root 일 필요는 없습니다)
디렉토리·오브젝트에 의한 파일 액세스
■ 디렉토리의 작성 CRAETE DIRECTORY Oracle 9i 버젼부터 UTL_FILE 패키지가 CREATE DIRECTORY에 대응하게 되었다.
CREATE DIRECTORY recv_area AS '/u05/file_storage/recv_dir';
GRANT READ ON DIRECTORY recv_area TO user_name ;
■ 파일쓰기 (초기화 파라메터 사용시 )
■ 파일읽기 (초기화 파라메터 사용시 )
주의사항
|
◆DIRECTORY 편 |
UTL_FILE 패키지를 사용해 PL/SQL에서 파일의 입출력을 실시할 수 있다.Oracle 9i 이후부터는 CREATE DIRECTORY 를 사용하여 유저 단위, 읽어들이기, 쓰기의 제한이 가능하게 되었다. 또한 디렉토리를 추가하고 싶은 경우에도 Oracle 의 재기동이 필요하지 않으므로 다운 타임을 줄일 수 있다
준비작업 ■ 디렉토리 작성 디렉토리 파일의 작성 (UTL_FILE_DIR 편과 같다) 디렉토리를 작성할 경우에 OS 의 DBA 인 유저(통상은 oracle)로 디렉토리를 작성한다. 내용은 생략 ⇒ UTL_FILE 의 사용법 (UTL_FILE_DIR 편)의 준비작업을 참조
디렉토리·오브젝트에 의한 파일 액세스
■ 디렉토리의 작성 CRAETE DIRECTORY Oracle 9i 버젼부터 UTL_FILE 패키지가 CREATE DIRECTORY 에 대응하게 되었다.
CREATE DIRECTORY recv_area AS '/u05/file_storage/recv_dir';
GRANT READ ON DIRECTORY recv_area TO user_name ;
■ 파일쓰기 (초기화 파라메터 사용시 )
■ 파일읽기 (초기화 파라메터 사용시 )
주의사항
|
'오라클' 카테고리의 다른 글
OMF(ORACLE MANAGED FILES) 개념과 사용 예제 (0) | 2009.09.25 |
---|---|
External Table을 이용 물리적 파일을 처리하는 DML작업 성능개선. (0) | 2008.10.01 |
[오라클 10g] 플래시백의 설정/관리 (0) | 2008.09.25 |
Oracle10g에서의 Automatic Retention - ORA-1555에러방지 (0) | 2008.09.25 |
Oracle의 메모리 구조 - SGA(DataBase Buffer Cache) (0) | 2008.09.25 |