오라클에서 DB의 내용을 Text File로 만드는 방법입니다.
1. 먼저 파일을 만들 디렉토리를 만들어야 합니다.
1) 오라클 계정으로 로그인 합니다.
linux:/home/oracle # su - oracle
2) sysdba 계정으로 sqlplus에 접속합니다.
oracle@linux:~> sqlplus "/as sysdba"
3) 오라클 디렉토리를 생성합니다.
SQL> create directory TARGET_DIR as '/DATA/TEST';
4) 권한을 지정 합니다.
SQL> grant read, write on directory TARGET_DIR to public;
2. 프로시저나 Function을 만들어서 사용합니다.
CREATE OR REPLACE PROCEDURE SP_WRITE_FILE IS
file_handle utl_file.file_type;
cursor c1 is
SELECT CODE, MSG FROM T_FILE_DATA; -- 파일로 쓸 데이터 내용
v_CODE T_FILE_DATA.CODE%TYPE;
v_MSG T_FILE_DATA.MSG%TYPE;
BEGIN
-- Temp 파일로 만든 다음 dat로 이름 변경함
file_handle := utl_file.fopen('TARGET_DIR', 'FileData.dat.tmp', 'w');
OPEN c1;
LOOP
FETCH c1 INTO v_CODE, v_MSG ;
EXIT WHEN c1%notfound;
utl_file.put_line(file_handle,
v_CODE || CHR(9) || -- TAB을 구분자로 사용
v_MSG);
END LOOP;
CLOSE c1;
utl_file.fclose(file_handle);
utl_file.frename('TARGET_DIR', 'FileData.dat.tmp', 'TARGET_DIR', 'FileData.dat', TRUE);
END SP_WRITE_FILE;
3. 필요시 Triger를 사용하여 데이터를 파일로 만드는 것도 하나의 방법이 되겠습니다.
'프로그래밍 > Oracle' 카테고리의 다른 글
[Trouble/Shooting] Listener.log 파일이 비약적으로 커질 경우 해결 방안 (0) | 2009.03.05 |
---|---|
오라클 프로세스 실행 방법 (0) | 2007.08.13 |
오라클 프로시저로 조회쿼리 돌리기 (0) | 2007.01.24 |
댓글