日期:2014-05-17  浏览次数:20847 次

请问 oracle 会自己保存一些建表 建立试图,包括建立索引的脚本么?
比方我 建表
create table table2 as ( selct col1 ,col2,。。。。
  where 条件1 and 条件2 or 条件 。。。。。 
  from table1)

过了一段时间, 我忘记当初 这个table2 是如何建立的话,
有没有地方 能看到当初 我 这个create table 的命令呢??


是不是应该有某一个 数据字典当中 有所谓的解释, 可能字段名称叫做 comments 之类的



------解决方案--------------------
1,DESCRIBE 命令

使用方法如下:

SQL> describe nchar_tst(nchar_tst为表名)

显示的结果如下:

 名称 是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 NAME NCHAR(6)
 ADDR NVARCHAR2(16)
 SAL NUMBER(9,2)
2,DBMS_METADATA.GET_DDL包

使用方法如下:

SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST') FROM DUAL;

如果显示的结果并未完整,如下:

CREATE TABLE "SCOTT"."NCHAR_TST"
( "NAME" NCHAR(6),
"ADDR" NVARCHAR2(16

那么修改如下:

SQL> SET LONG 9999

SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST') FROM DUAL;

则显示如下的结果:

DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST')
------------------------------------------

CREATE TABLE "SCOTT"."NCHAR_TST"
( "NAME" NCHAR(6),
"ADDR" NVARCHAR2(16),
"SAL" NUMBER(9,2)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING
STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50
FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM"