Friday, December 4, 2015

Need DDL but no GUI : No Problem : DBMS_METADATA to the rescue.


Need a DDL but no Toad/OEM/DBArtisan or any other GUI ? Now what? End of the world?

Well, not if you know how to use the CLI and sql prompt to get to what u need. Use formatting to format and spool it to scripts for automation. This is just a compilation.

get ddl from command line
OBJECT_TYPE COMMAND
 (DB LINK) SQL> set long 10000
  SQL> select dbms_metadata.get_ddl('DB_LINK',DB_LINK,'PUBLIC') from dba_db_links where DB_LINK='LINK_NAME';
  select 'select dbms_metadata.get_ddl(''TABLE'','''||TABLE_NAME||''','''||OWNER||''') from dual;' as "--Command" from dba_tables where owner IN ('MYNAME');
   
user SELECT dbms_metadata.get_ddl('USER','MDSSWEBUSER') from dual;
roles granted SELECT DBMS_METADATA.GET_GRANTED_DDL( 'ROLE_GRANT','MDSSWEBUSER') from dual; 
roles SELECT dbms_metadata.get_ddl('ROLE','MDSSWEBUSER') from dual; 
profile SELECT DBMS_METADATA.GET_DDL('PROFILE','DEFAULT') FROM DUAL;
objects grants SELECT DBMS_METADATA.GET_GRANTED_DDL( 'OBJECT_GRANT','MDSSWEBUSER') from dual; 
system grants SELECT DBMS_METADATA.GET_GRANTED_DDL( 'SYSTEM_GRANT','MDSSWEBUSER') from dual; 
cluster select dbms_metadata.get_ddl('CLUSTER','C_MLOG#','SYS') from dual;
context select dbms_metadata.get_ddl('CONTEXT','LT_CTX') from dual;
function select dbms_metadata.get_ddl('FUNCTION','TO_DATE_FUNC','SCOTT') from dual;
index select dbms_metadata.get_ddl('INDEX','REPCAT$_REPCOLUMN_PK','SYSTEM') from dual;
java source select dbms_metadata.get_ddl('JAVA_SOURCE','java_util','ADAM') from dual
  select dbms_metadata.get_ddl('JAVA_SOURCE','/6c363944_Dumper','SYS') from dual
library select dbms_metadata.get_ddl('LIBRARY','UTL_SMT_LIB','SYS') from dual;
materialized view select dbms_metadata.get_ddl('MATERIALIZED_VIEW','BS_TAB_MV','SYS') from dual;
mv log select dbms_metadata.get_ddl('MATERIALIZED_VIEW_LOG','MLOG$_BS_TABLE','SYS') from dual;
operator select dbms_metadata.get_ddl('OPERATOR','OLAP_EXPRESSION') from dual;
  select dbms_metadata.get_ddl('OPERATOR','OLAP_EXPRESSION','SYS') from dual;
package select dbms_metadata.get_ddl('PACKAGE','XMLPARSER') from dual;
  select dbms_metadata.get_ddl('PACKAGE','XMLPARSER','SYS') from dual;
package body select dbms_metadata.get_ddl('PACKAGE_BODY','STATSPACK','PERFSTAT') from dual;
procedure select dbms_metadata.get_ddl('PROCEDURE','ORA$_SYS_REP_AUTH','SYSTEM') from dual;
sequence select dbms_metadata.get_ddl('SEQUENCE','STATS$SNAPSHOT_ID','PERFSTAT') from dual;
synonym select dbms_metadata.get_ddl('SYNONYM','/2fddc42_paintARGB_PRE_ONTO_S5','PUBLIC') from dual;
table select dbms_metadata.get_ddl('TABLE','SQLEXPERT_PLAN1','SYSTEM') from dual;
tablespace select dbms_metadata.get_ddl('TABLESPACE','USERS') from dual;
trigger select dbms_metadata.get_ddl('TRIGGER','DEF$_PROPAGATOR_TRIG','SYSTEM') from dual;
type select dbms_metadata.get_ddl('TYPE','XMLSEQ_IMP_T','SYS') from dual;
type body select dbms_metadata.get_ddl('TYPE_BODY','ORACLE_LOADER','SYS') from dual;
view select dbms_metadata.get_ddl('VIEW','DBA_PROPAGATION','SYS') from dual;
  select dbms_metadata.get_ddl('VIEW','DBA_PROPAGATION') from dual;
package select dbms_metadata.get_ddl('PACKAGE','DBMS_METADATA','SYS') from dual;


No comments: