在oracle sql中显示“show create table”

时间:2013-08-16 01:47:24

标签: sql oracle

在MySql中,您可以使用show create table table_name查看表定义(包含其数据类型的列等)。

oracle sql是否有类似的功能?

6 个答案:

答案 0 :(得分:32)

如果您询问SQL * Plus命令(show create table table_name似乎不是SQL语句),您可以使用desc命令

SQL> desc emp
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

如果您真的需要SQL语句,可以使用dbms_metadata

  1  select dbms_metadata.get_ddl( 'TABLE', 'EMP', 'SCOTT' )
  2*   from dual
SQL> /

DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT')
--------------------------------------------------------------------------------

  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 DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"
  ALTER INDEX "SCOTT"."PK_EMP"  UNUSABLE 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 DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"
  CACHE

根据您使用的工具,您可能需要首先运行set long 10000,告诉SQL * Plus显示所选LOB的前10,000个字节。如果您的DDL较长,请设置较大的值。

答案 1 :(得分:6)

使用DESC

DESC mytable

将向您显示列,但遗憾的是,使用标准的oracle工具无法使用create语句。

答案 2 :(得分:5)

SQL>设置长1000

SQL>设置pagesize 0

SQL>从DUAL中选择DBMS_METADATA.GET_DDL('表'表'表名' [,' SCHEMA'])

答案 3 :(得分:3)

如果您正在使用PL / SQL Developer;右键单击表,选择View,在视图窗口的右下角单击“View SQL”按钮。

答案 4 :(得分:0)

DDL正在为我工​​作,更简单您只需要编写DDL (SCHEMA_OWNER).(TABLE_NAME) ...例如ddl HR.LOCATIONS; .... HR是架构和{ {1}}是表名...请确保在此处写入LOCATION名称和表SCHEMA,输出将为

NAME

答案 5 :(得分:0)

请注意,表名区分大小写,您需要以大写形式传递表名。