首页 > 数据库 > Oracle > 生成创建表的ddl语句
conn scott/tiger
set pagesize 0
set long 90000
set feedback off
set echo off
spool scott_schema.sql
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM user_tables u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM user_indexes u; #生成创建index的ddl语句
spool off;
set echo off输出结果类似下面
set heading off
set feedback off
set verify off
set pagesize 0
set linesize 200
define schema=&1
execute dbms_metadata.set_transform_param(dbms_metadata.session_transform,'PRETTY',true);
execute dbms_metadata.set_transform_param(dbms_metadata.session_transform,'SQLTERMINATOR',true);
select to_char(dbms_metadata.get_ddl('TABLE',table_name,owner))
from dba_tables
where owner=upper('&1');
select to_char(dbms_metadata.get_ddl('INDEX',index_name,table_owner)) #生成创建index的ddl语句
from dba_indexes
where table_owner=upper('&1');
CREATE TABLE "SCOTT"."DEPT"
( "DEPTNO" NUMBER(2,0),
"DNAME" VARCHAR2(14),
"LOC" VARCHAR2(13),
CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ENABLE
) SEGMENT CREATION IMMEDIATE
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 FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28697282/viewspace-1480739/ ,如需转载,请注明出处,否则将追究法律责任。