[20181203]drop table后如何获得表结构.txt
--//别人问的问题,要恢复删除的表,一些特殊的工具事先要知道表结构,这样恢复方便一些.
--//实际上如果发现及时,可以使用as of查询功能,确定表结构.通过例子说明:
1.环境:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
SCOTT@book> create table empy as select * from emp;
Table created.
SCOTT@book> set numw 12
SCOTT@book> select sysdate,current_scn from v$database;
SYSDATE CURRENT_SCN
------------------- ------------
2018-12-03 15:30:16 13815350216
SCOTT@book> drop table empy purge ;
Table dropped.
2.如何确定表结构,查询dba_tab_columns:
--//drop table 的scn或者时间可以通过logminer 确定,我这里省略.
--//执行如下:
SELECT column_name, data_type, data_length,DATA_PRECISION,DATA_SCALE,column_id
FROM dba_tab_columns AS OF SCN 13815350216
WHERE owner = 'SCOTT' AND table_name = 'EMPY'
ORDER BY column_id;
COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE COLUMN_ID
-------------------- ---------- ------------ -------------- ------------ ------------
EMPNO NUMBER 22 4 0 1
ENAME VARCHAR2 10 2
JOB VARCHAR2 9 3
MGR NUMBER 22 4 0 4
HIREDATE DATE 7 5
SAL NUMBER 22 7 2 6
COMM NUMBER 22 7 2 7
DEPTNO NUMBER 22 2 0 8
8 rows selected.
--//拷贝下来,稍微编辑一些就可以了.数字取DATA_PRECISION,字符串取DATA_LENGTH,日期类型仅仅定义date就ok了.
--//对比表结构:
SCOTT@book> @ ddl scott.emp
C100
----------------------------------------------------------------------------------------------------
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" ;