728x90
반응형
Oracle UTL_FILE패키지를 이용해서 DB에서 OS에 파일을 생성하고, 내용을 작성할 수 있다.
예시를 통해 알아보자
1. oracle directory생성
SELECT *
FROM dba_directories
을 통해서 현재 DB의 directory를 볼 수 있다. 나는 C:\test 라는 경로에 파일을 생성하고 싶기 때문에
C:\test 를 oracle directory에 등록을 해줘야 한다.
-- create directory <디렉터리명> as '<디렉터리 경로>';
CREATE directory TEST_DIR AS 'C:\test';
위와 같이 TEST_DIR이라는 oracle directory를 만들어 주었다.
위와 같이 지정이 되었다.
2. 권한부여
-- GRANT READ, WRITE ON directory test_dir TO <user명>;
GRANT READ, WRITE ON directory test_dir TO test;
test라는 user에게 test_dir디렉토리의 읽기, 쓰기 권한을 부여한다.
이렇게 권한을 부여해야 test라는 유저가 test_dir이라는 oracle directory를 사용할 수 있다.
3. 사용예시
DECLARE
v_file_handle UTL_FILE.FILE_TYPE;
BEGIN
-- 파일 생성(W) test.log
v_file_handle := UTL_FILE.FOPEN('TEST_DIR', 'test.log', 'W');
-- 파일에 write
UTL_FILE.PUT_LINE(v_file_handle, 'TEST TEST TEST');
-- 파일 닫기
UTL_FILE.FCLOSE(v_file_handle);
-- 파일에 내용 추가
v_file_handle := UTL_FILE.FOPEN('TEST_DIR', 'test.log', 'A');
-- 파일에 write
UTL_FILE.PUT_LINE(v_file_handle, 'APPEND TEST');
-- 파일 닫기
UTL_FILE.FCLOSE(v_file_handle);
EXCEPTION
WHEN OTHERS THEN
-- ERROR
DBMS_OUTPUT.PUT_LINE('SQL ERROR CODE : ' || SQLCODE);
DBMS_OUTPUT.PUT_LINE('SQL ERROR MESSAGE : ' || SQLERRM);
DBMS_OUTPUT.PUT_LINE(SQLERRM(SQLCODE));
END
;
위의 pl/sql을 통해 UTL_FILE 패키지의 '파일 생성'(w), '파일 내용 추가'(a)예시를 알아보았다.
위는 실제 결과물이다.
이렇게 UTL_FILE 패키지를 통한 간단한 파일 작성예시를 알아보았다.
728x90
반응형
'DB (데이터베이스) > Oracle (오라클)' 카테고리의 다른 글
[Oracle] oracle password 재사용 불가 설정 (PASSWORD_REUSE_TIME, PASSWORD_REUSE_MAX) (0) | 2024.05.31 |
---|---|
[Oracle] oracle verify function 적용방법 (0) | 2024.05.31 |
[Oracle] oracle PLS-00201 : identifier must be declared 원인, 해결 (0) | 2024.05.27 |
[Oracle] oracle error Warning : too many parse errors 원인, 해결 (0) | 2024.05.27 |
[Oracle] oracle에서 lock object를 조회하는 방법 (0) | 2024.05.10 |