There's a whole host of options for exporting table DDL using Oracle SQL Developer.
Jeff Smith discusses them in these posts:
https://www.thatjeffsmith.com/archive/2014/06/how-to-generate-schema-ddl-scripts-with-one-file-per-table-using-sql-developer/ https://www.thatjeffsmith.com/archive/2016/05/configuring-your-generated-ddl-in-sql-developer-and-sqlcl/ https://www.thatjeffsmith.com/archive/2011/11/introducing-the-sql-developer-shopping-cart/ Note: if you load the tables into Data Modeler, you can use this to do your source control!
If none of the above helps, you can always hand-crank the DDL using dmbs_metadata.
Set the options you want using the transformations. Then call get_ddl for each table in your schema:
create table t (
c1 int not null primary key,
c2 int not null unique,
c3 int references t ( c1 )
);
begin
dbms_metadata.set_transform_param (dbms_metadata.session_transform,'STORAGE',false);
dbms_metadata.set_transform_param (dbms_metadata.session_transform,'TABLESPACE',false);
dbms_metadata.set_transform_param (dbms_metadata.session_transform,'SEGMENT_ATTRIBUTES', false);
dbms_metadata.set_transform_param (dbms_metadata.session_transform,'CONSTRAINTS', true);
dbms_metadata.set_transform_param (dbms_metadata.session_transform,'REF_CONSTRAINTS', true);
end;
/
set long 10000
select dbms_metadata.get_ddl('TABLE',table_name,user)
from user_tables
where table_name = 'T';
DBMS_METADATA.GET_DDL('TABLE',TABLE_NAME,USER)
CREATE TABLE "CHRIS"."T"
( "C1" NUMBER(*,0) NOT NULL ENABLE,
"C2" NUMBER(*,0) NOT NULL ENABLE,
"C3" NUMBER(*,0),
PRIMARY KEY ("C1")
USING INDEX ENABLE,
UNIQUE ("C2")
USING INDEX ENABLE,
FOREIGN KEY ("C3")
REFERENCES "CHRIS"."T" ("C1") ENABLE
) ;
The DDL command in SQLcl does something similar:
SQL> sho ddl
STORAGE : OFF
INHERIT : ON
SQLTERMINATOR : ON
OID : ON
SPECIFICATION : ON
TABLESPACE : OFF
SIZE_BYTE_KEYWORD : ON
PRETTY : ON
REF_CONSTRAINTS : ON
FORCE : ON
PARTITIONING : ON
CONSTRAINTS : ON
INSERT : OFF
BODY : ON
CONSTRAINTS_AS_ALTER : ON
SEGMENT_ATTRIBUTES : OFF
SQL>
SQL> ddl t
CREATE TABLE "CHRIS"."T"
( "C1" NUMBER(*,0) NOT NULL ENABLE,
"C2" NUMBER(*,0) NOT NULL ENABLE,
"C3" NUMBER(*,0),
PRIMARY KEY ("C1")
USING INDEX ENABLE,
UNIQUE ("C2")
USING INDEX ENABLE,
FOREIGN KEY ("C3")
REFERENCES "CHRIS"."T" ("C1") ENABLE
) ;