1: declare
2: c_owner_name varchar2(255) := 'scott';
3: cursor pkg_cur is
4: select * from all_source
5: where owner = c_owner_name
6: -- and name = '패키지이름 특정할 경우'
7: and (type = 'PACKAGE' or type = 'PACKAGE BODY')
8: ;
9: x_filename_output varchar2(255);
10: OutFile utl_file.file_type;
11:
12: -- 폴더 이름 :
13: DIR_NAME varchar2(255) := 'EXP_DIR';
14: begin
15: OutFile := utl_file.fopen(DIR_NAME, 'whole.sql', 'w');
16: for pkg_rec in pkg_cur loop
17: -- file open succeed...
18: IF utl_file.is_open(OutFile) THEN
19: utl_file.put(OutFile, pkg_rec.text);
20: utl_file.fflush(OutFile);
21: end if;
22: end loop;
23: dbms_output.put_line(
24: case when utl_file.is_open(OutFile)
25: then 'opened' else 'not opened'
26: end);
27: IF utl_file.is_open(OutFile) THEN
28: utl_file.fclose(OutFile);
29: end if;
30: end;
헌데 utl_file.fopen() 내부 함수를 이용하려면 DIRECTORY를 미리 구성해야 한다.
(일종의 alias 개념으로 보면 될 듯. 시스템의 특정 경로에 대한 이름을 생성해서 사용한다)
다음 쿼리를 사용해서 생성되어 있는 DIRECTORY 항목을 확인할 수 있고,
혹은 DIRECTORY 항목을 생성할 수 있다.
1: select * from all_directories;
2: create or replace directory dir_temp as 'c:\temp';
3: grant read, write on directory tempdir to scott;
'BI, DB, DW > Oracle' 카테고리의 다른 글
Oracle 스키마 문서화 도구, OraSchemadoc (0) | 2009.08.11 |
---|