Oracle 建库脚本导出

本文介绍了两种从Oracle导出建库脚本的方法:1) 使用DBMS_METADATA包,虽然繁琐低效,但能灵活控制DDL内容;2) 利用expdp/impdp工具,快捷生成脚本,通过选项调整输出内容。对于大量对象的导出,推荐使用expdp/impdp以提高效率。
摘要由CSDN通过智能技术生成

相信大多数人都碰到过如何从oracle导出建库脚本的问题,这事说起来其实不难,但挺麻烦的。总体而言有两种方式:


1、通过dbms_metadata包导出。最简单的方式如下:


SELECT DBMS_METADATA.GET_DDL('TABLE','EMPLOYEE', 'SCOTT') FROM dual;


这样就得到了SCOTT用户下EMPLOYEE的建表脚本:


CREATE TABLE "SCOTT"."EMP" 
   (	"EMPNO" NUMBER(4,0), 
	"ENAME" VARCHAR2(10), 
	"JOB" VARCHAR2(9), 
	"MGR" NUMBER(4,0), 
	"HIREDATE" DATE, 
	"SAL" NUMBER(7,2), 
	"COMM" NUMBER(7,2), 
	"DEPTNO" NUMBER(2,0), 
	 CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")
  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, 
	 CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
	  REFERENCES "SCOTT"."DEPT" ("DEPTNO") 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" 


但这样得到的脚本是不完全的,没有包括表上面的索引和注释,所以还需要继续获取每个索引的DDL:


SELECT DBMS_METADATA.GET_DDL('INDEX','IDX_EMP_JOB', 'SCOTT') FROM dual;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值