Get table metadata script

**get_ddl_v1.sql
REM --This query is to display all DDL for a table .

REM --set output format

set pagesize 0
set feedback off
set long 90000
set echo off
SET VERIFY OFF
set heading off
set serveroutput on
execute dbms_metadata.set_transform_param(dbms_metadata.session_transform,'STORAGE',FALSE);
execute dbms_metadata.set_transform_param(dbms_metadata.session_transform,'SQLTERMINATOR',TRUE);

define file_name=ddl_output_script_
column  day new_value _day noprint
select to_char(sysdate,'yyyymmdd') day  from dual;
column table_name new_value table_name
column owner new_value owner
select table_name ,owner from dba_tables where table_name=upper('&table_name') and owner=upper('&owner');

spool &file_name.&owner._&table_name.&_day.sql

REM --get ddl script

select replace(dbms_metadata.get_ddl('TABLE','&table_name','&owner'),'"',null) FROM DUAL;
select replace(dbms_metadata.get_dependent_ddl('INDEX','&table_name','&owner'),'"',null) from dual;
--select replace(dbms_metadata.get_dependent_ddl('CONSTRAINT','&table_name','&owner'),'"',null) from dual;
select replace(dbms_metadata.get_dependent_ddl('TRIGGER','&table_name','&owner'),'"',null) from dual;
SELECT replace(DBMS_METADATA.GET_DEPENDENT_DDL  ('REF_CONSTRAINT','&table_name','&owner'),'"',null) from dual;

spool off


**Display constraint &foreign key constraint metadata

SELECT DBMS_METADATA.GET_DDL('REF_CONSTRAINT','RLH_F1') FROM DUAL;
SELECT DBMS_METADATA.GET_DDL('CONSTRAINT','DBINC_P') FROM DUAL;

SELECT DBMS_METADATA.get_ddl ('REF_CONSTRAINT', c.constraint_name)
  FROM user_constraints c  WHERE c.constraint_type = 'R' AND CONSTRAINT_NAME = 'RLH_F1';
   
SELECT DBMS_METADATA.get_ddl ('CONSTRAINT', c.constraint_name)
  FROM user_constraints c  WHERE c.constraint_type = 'P' AND TABLE_NAME='&TABLE_NAME';

**Display constraint &foreign key column



SELECT CON.*,
       R.OWNER REF_OWNER,
       R.TABLE_NAME REF_TAB_NAME,
       R.COLUMN_NAME REF_COL_NAME
  FROM (SELECT C.OWNER,
               C.CONSTRAINT_NAME,
               C.CONSTRAINT_TYPE,
               C.TABLE_NAME,
               C.DELETE_RULE,
               C.R_CONSTRAINT_NAME,
               COL.COLUMN_NAME,
               COL.POSITION
          FROM USER_CONS_COLUMNS COL, USER_CONSTRAINTS C
         WHERE     C.OWNER = 'RCUSER'
               AND C.CONSTRAINT_NAME = 'RLH_F1'
               AND C.OWNER = COL.OWNER
               AND C.CONSTRAINT_NAME = COL.CONSTRAINT_NAME) CON,
       USER_CONS_COLUMNS R
 WHERE CON.R_CONSTRAINT_NAME = R.CONSTRAINT_NAME;



请使用浏览器的分享功能分享到微信等