728x90
반응형

사용방법 :

select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT')

   from dual;
 
select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT')

   from dual;

 

도움이 될런지.....

오라오라님이 2004-02-09 10:08:24에 작성한 댓글입니다. Edit

 

9i 이전 버젼이라면...

 

exp/imp를 이용하면 됩니다.

exp rows=n 로 해서 data를 제외하고 저장하고,

imp indexfile=myddl.sql    등으로  DDL 구문을 뽑아낼 수가 있습니다. 제일 앞부분은 '#' 주석으로 막혀있는데 이걸 제거하면 되겠지요.

 

9i 버젼이라면... 위의 분이 말씀하신 대로 dbms_metadata.get_ddl 을 이용하시는 것이 깔끔합니다.

프로시져에서 utl_file을 이용해서 dbms_metadata로 얻는 데이타를 file에 write 하도록 하고 이 프로시져는 dbms_job 등을 이용하면 배치로 돌릴 수 있습니다.

 

아래 쿼리를 이용하면 현재 유저에 소속된 모든 table 의 DDL문을 뽑아 낼 수가 있습니다.

 

SELECT DBMS_METADATA.get_ddl ('TABLE', table_name)        FROM user_tables

 

SP의 경우는

 

SELECT DBMS_METADATA.get_ddl ('PROCEDURE', name)        FROM user_source
where type = 'PROCEDURE'

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,