1、获得单个表和索引DDL语句的方法:set heading off;set echo off;Set pages 999;set long 90000;spool get_single.sqlselect dbms_metadata.get_ddl('TABLE','SZT_PQSO2','SHQSYS') from dual;select dbms_metadata.get_ddl('INDEX','INDXX_PQZJYW','SHQSYS') from dual;spool off; 下面是输出。我们只要把建表/索引语句取出来在后面加个分号就可以直接运行了。SQL> select dbms_metadata.get_ddl('TABLE','SZT_PQSO2','SHQSYS') from dual; CREATE TABLE "SHQSYS"."SZT_PQSO2" ( "PQBH" VARCHAR2(32) NOT NULL ENABLE, "ZJYW" NUMBER(10,0), "CGSO" NUMBER(10,0) NOT NULL ENABLE, "SOLS" VARCHAR2(17), "SORQ" VARCHAR2(8), "SOWR" VARCHAR2(8), "SOCL" VARCHAR2(6), "YWHM" VARCHAR2(10), "YWLX" VARCHAR2(6) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "DATA1" SQL> select dbms_metadata.get_ddl('INDEX','INDXX_PQZJYW','SHQSYS') from dual; CREATE INDEX "SHQSYS"."INDXX_PQZJYW" ON "SHQSYS"."SZT_PQSO2" ("ZJYW") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "DATA1" SQL> SQL> spool off; 2、获得整个SCHEMA DDL语句的方法:set pagesize 0set long 90000set feedback offset echo off spool get_schema.sql connect shqsys/shqsys@hawk1;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;spool off; 需要注意的是,当我们的表中有外健(参照约束)时,我们需要判别参照表之间的顺序,确保重建时按照合理的顺序进行。你可以通过查询dba_constraints and dba_cons_columns来确定各表之间的顺序,不再详述。
解决方案 »
- 第一次安装oracle ,服务无法启动,大家帮忙
- 关于拼接两张表的问题
- 如何MFC编程让一台oracle客户端连接oracle服务器
- 怎么查询出ORACLE表的列的值是中文的
- 出现错误:java.sql.SQLException: ORA-01830: 日期格式图片在转换整个输入字符串之前结束
- dbms_job.submit的问题
- 求存储过程
- DBSNAP,ORDSYS,DEMO,MDSYS这些用户的初始密码是什么?他们是干什么用的?
- 一个oracle联机的问题,重谢,在线守侯~
- 请问各位高手怎样将一个表的数据导出为CSV文件,它的语句怎么写?
- 怎样实现这样的查询?
- oracle数据库崩溃了,怎么办,救命啊?????????????????
SAVE 路径
这个命令可以保存在任何盘里 自己加后缀sql就可以了
set heading off
set feedback off
spool a.sql
sql语句
spool off或者你把这些先写在一个文件里,然后@文件.sql 就行了。