DDL 's of Objects in a Schema :-
select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME') from dual;
select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME') from dual;
SQL> set lin 1000
SQL> set pagesize 9999
SQL> set long 9999
SQL> select dbms_metadata.get_ddl('TABLE','AMIT') from dual;
CREATE TABLE "OWNER"."AMIT"
( "A" VARCHAR2(26),
"B" VARCHAR2(10),
"C" VARCHAR2(10),
"D" VARCHAR2(20),
"E" VARCHAR2(10),
"F" DATE,
"G" NUMBER,
"H" VARCHAR2(20),
"I" VARCHAR2(20),
"J" VARCHAR2(5),
"K" NUMBER,
"L" NUMBER,
"M" NUMBER,
"N" NUMBER,
"O" DATE,
"P" DATE,
"Q" VARCHAR2(255),
"R" VARCHAR2(255),
"S" NUMBER,
"T" NUMBER,
"U" VARCHAR2(10),
"V" DATE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
Script to Generate DDL 's of Various Objects of database :-
SQL> select 'select dbms_metadata.get_ddl(''INDEX'',''' || index_name|| ''' ) from dual;' from user_indexes;
SQL> select 'select dbms_metadata.get_ddl(''INDEX'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='INDEX';
SQL> select 'select dbms_metadata.get_ddl(''INDEX'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='INDEX' and owner not in ('SYS','SYSTEM');
Script for DDL's of all Tables of database:-
SQL> select 'select dbms_metadata.get_ddl(''TABLE'',''' || table_name|| ''' ) from dual;' from user_tables;
SQL> select 'select dbms_metadata.get_ddl(''TABLE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TABLE';
SQL> select 'select dbms_metadata.get_ddl(''TABLE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TABLE' and owner not in ('SYS','SYSTEM');
Script for DDL's of All Procedures of database:-
SQL> select 'select dbms_metadata.get_ddl(''PROCEDURE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='PROCEDURE';
SQL> select 'select dbms_metadata.get_ddl(''PROCEDURE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='PROCEDURE' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''PROCEDURE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='PROCEDURE' and owner='OWNER_NAME';
Script for DDL's of All Functions of database :-
SQL> select 'select dbms_metadata.get_ddl(''FUNCTION'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='FUNCTION';
SQL> select 'select dbms_metadata.get_ddl(''FUNCTION'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='FUNCTION' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''FUNCTION'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='FUNCTION' and owner='OWNER_NAME';
Script for DDL's of All Triggers of database:-
SQL> select 'select dbms_metadata.get_ddl(''TRIGGER'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TRIGGER';
SQL> select 'select dbms_metadata.get_ddl(''TRIGGER'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TRIGGER' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''TRIGGER'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TRIGGER' and owner='OWNER_NAME';
Script for DDL's of All Views of database:-
SQL> select 'select dbms_metadata.get_ddl(''VIEW'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='VIEW';
SQL> select 'select dbms_metadata.get_ddl(''VIEW'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='VIEW' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''VIEW'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='VIEW' and owner='OWNER_NAME';
I hope this article helped you.
Regards,
Amit Rath
select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME') from dual;
select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME') from dual;
SQL> set lin 1000
SQL> set pagesize 9999
SQL> set long 9999
SQL> select dbms_metadata.get_ddl('TABLE','AMIT') from dual;
CREATE TABLE "OWNER"."AMIT"
( "A" VARCHAR2(26),
"B" VARCHAR2(10),
"C" VARCHAR2(10),
"D" VARCHAR2(20),
"E" VARCHAR2(10),
"F" DATE,
"G" NUMBER,
"H" VARCHAR2(20),
"I" VARCHAR2(20),
"J" VARCHAR2(5),
"K" NUMBER,
"L" NUMBER,
"M" NUMBER,
"N" NUMBER,
"O" DATE,
"P" DATE,
"Q" VARCHAR2(255),
"R" VARCHAR2(255),
"S" NUMBER,
"T" NUMBER,
"U" VARCHAR2(10),
"V" DATE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
;
DDL 's of Objects in a Any Schema :-
select dbms_metadata.get_ddl('TABLE','TABLE_NAME','USERNAME') from dual;
select dbms_metadata.get_ddl('INDEX','INDEX_NAME','USERNAME') from dual;
select dbms_metadata.get_ddl('PROCEDURE','PROCEDURE_NAME','USERNAME') from dual;
SQL> set lin 1000
SQL> set pagesize 9999
SQL> set long 9999
SQL> select dbms_metadata.get_ddl('TABLE','AMIT','OWNER') from dual;
( "A" VARCHAR2(26),
"B" VARCHAR2(10),
"C" VARCHAR2(10),
"D" VARCHAR2(20),
"E" VARCHAR2(10),
"F" DATE,
"G" NUMBER,
"H" VARCHAR2(20),
"I" VARCHAR2(20),
"J" VARCHAR2(5),
"K" NUMBER,
"L" NUMBER,
"M" NUMBER,
"N" NUMBER,
"O" DATE,
"P" DATE,
"Q" VARCHAR2(255),
"R" VARCHAR2(255),
"S" NUMBER,
"T" NUMBER,
"U" VARCHAR2(10),
"V" DATE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
;
Script to Generate DDL 's of Various Objects of database :-
Script for DDL 's of All Indexes of database:-
SQL> select 'select dbms_metadata.get_ddl(''INDEX'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='INDEX';
SQL> select 'select dbms_metadata.get_ddl(''INDEX'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='INDEX' and owner not in ('SYS','SYSTEM');
Script for DDL's of all Tables of database:-
SQL> select 'select dbms_metadata.get_ddl(''TABLE'',''' || table_name|| ''' ) from dual;' from user_tables;
SQL> select 'select dbms_metadata.get_ddl(''TABLE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TABLE';
SQL> select 'select dbms_metadata.get_ddl(''TABLE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TABLE' and owner not in ('SYS','SYSTEM');
Script for DDL's of All Procedures of database:-
SQL> select 'select dbms_metadata.get_ddl(''PROCEDURE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='PROCEDURE';
SQL> select 'select dbms_metadata.get_ddl(''PROCEDURE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='PROCEDURE' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''PROCEDURE'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='PROCEDURE' and owner='OWNER_NAME';
Script for DDL's of All Functions of database :-
SQL> select 'select dbms_metadata.get_ddl(''FUNCTION'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='FUNCTION';
SQL> select 'select dbms_metadata.get_ddl(''FUNCTION'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='FUNCTION' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''FUNCTION'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='FUNCTION' and owner='OWNER_NAME';
Script for DDL's of All Triggers of database:-
SQL> select 'select dbms_metadata.get_ddl(''TRIGGER'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TRIGGER';
SQL> select 'select dbms_metadata.get_ddl(''TRIGGER'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TRIGGER' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''TRIGGER'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='TRIGGER' and owner='OWNER_NAME';
Script for DDL's of All Views of database:-
SQL> select 'select dbms_metadata.get_ddl(''VIEW'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='VIEW';
SQL> select 'select dbms_metadata.get_ddl(''VIEW'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='VIEW' and owner not in ('SYS','SYSTEM');
SQL> select 'select dbms_metadata.get_ddl(''VIEW'',''' || OBJECT_name|| ''',''' || owner|| ''') from dual;' from dba_OBJECTS where object_type='VIEW' and owner='OWNER_NAME';
I hope this article helped you.
Regards,
Amit Rath
nice work =)
ReplyDeleteAppreciate the information
ReplyDeleteReally helpful, dba's who doesn't have Toad (or) Sql Developer
For only Constraints ?? Can I have similar query?
ReplyDeleteHi,
DeleteFor constraints, we have to query from dba_constraints as constraints are not objects , they are part of objects(table). We create constraints using either an ALTER command or while creating table.
select 'select dbms_metadata.get_ddl(''CONSTRAINT'',''' || CONSTRAINT_NAME || ''',''' || owner|| ''') from dual;' from dba_constraints where OWNER='AMIT';
Hope this helps.
Thanks
Amit Rath