2013-08-16 18 views

risposta

31

Se ti stai chiedendo circa comandi SQL * Plus (show create table table_name non sembrano essere un'istruzione SQL), è possibile utilizzare il comando

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) 

desc Se davvero si vuole un'istruzione SQL, è possibile utilizzare la seconda dello strumento che si sta utilizzando dbms_metadata pacchetto

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 

, potrebbe essere necessario eseguire set long 10000 prima, che racconta SQL * Plus per visualizzare i primi 10.000 byte di qualsiasi LOB che è selezionata. Se il tuo DDL è più lungo, imposta un valore più grande.

5

Uso DESC:

DESC mytable 

vi mostrerà le colonne, ma purtroppo la dichiarazione creare non è disponibile utilizzando strumenti Oracle Standard.

+2

comando disc non mostra limiti e le chiavi e gli indici – nightograph

+0

domanda @nightograph non chiede restrizioni e le chiavi; richiede solo * la definizione della tabella (colonne con i loro tipi di dati, ecc.) * – Bohemian

+3

la domanda richiede l'equivalente di "show create table" in Oracle, DESC non è equivalente poiché "show create" mostra gli indici delle chiavi e DESC no – nightograph

5

SQL> set lungo 1000

SQL> pagesize impostare 0

SQL> selezionare DBMS_METADATA.GET_DDL ('table', 'TABLE NAME' [, 'SCHEMA']) dal DUAL

3

Se stai usando lo sviluppatore PL/SQL; Fare clic destro sulla tabella, selezionare Visualizza, nella parte inferiore destra della finestra di visualizzazione fare clic sul pulsante 'Visualizza SQL'.

0

DDL sta lavorando per me e più semplice tutto ciò che serve è quello di scrivere DDL (SCHEMA_OWNER).(TABLE_NAME) ... per esempio ddl HR.LOCATIONS; .... HR è lo schema e LOCATION è il nome della tabella ... assicuratevi di scrivere sia il nome e SCHEMA tavolo NAME del capitale qui l'uscita sarà

CREATE TABLE "HR"."LOCATIONS" 
( "LOCATION_ID" NUMBER(4,0), 
"STREET_ADDRESS" VARCHAR2(40), 
"POSTAL_CODE" VARCHAR2(12), 
"CITY" VARCHAR2(30) CONSTRAINT "LOC_CITY_NN" NOT NULL ENABLE, 
"STATE_PROVINCE" VARCHAR2(25), 
"COUNTRY_ID" CHAR(2), 
CONSTRAINT "LOC_ID_PK" PRIMARY KEY ("LOCATION_ID") 
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING 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 "EXAMPLE" ENABLE, 
CONSTRAINT "LOC_C_ID_FK" FOREIGN KEY ("COUNTRY_ID") 
    REFERENCES "HR"."COUNTRIES" ("COUNTRY_ID") ENABLE 
) SEGMENT CREATION IMMEDIATE 
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING 
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 "EXAMPLE" ; 
COMMENT ON COLUMN "HR"."LOCATIONS"."LOCATION_ID" IS 'Primary key of 
locations table'; 
COMMENT ON COLUMN "HR"."LOCATIONS"."STREET_ADDRESS" IS 'Street address 
of an office, warehouse, or production site of a company. 
Contains building number and street name'; 
COMMENT ON COLUMN "HR"."LOCATIONS"."POSTAL_CODE" IS 'Postal code of 
the 
location of an office, warehouse, or production site 
of a company. '; 
COMMENT ON COLUMN "HR"."LOCATIONS"."CITY" IS 'A not null column that 
shows city where an office, warehouse, or 
production site of a company is located. '; 
COMMENT ON COLUMN "HR"."LOCATIONS"."STATE_PROVINCE" IS 'State or 
Province where an office, warehouse, or production site of a 
company is located.'; 
COMMENT ON COLUMN "HR"."LOCATIONS"."COUNTRY_ID" IS 'Country where an 
office, warehouse, or production site of a company is 
located. Foreign key to country_id column of the countries table.'; 
COMMENT ON TABLE "HR"."LOCATIONS" IS 'Locations table that contains 
specific address of a specific office, 
warehouse, and/or production site of a company. Does not store 
addresses/
locations of customers. Contains 23 rows; references with the 
departments and countries tables. '; 
CREATE INDEX "HR"."LOC_CITY_IX" ON "HR"."LOCATIONS" ("CITY") 
PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING 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 "EXAMPLE" ; 
CREATE INDEX "HR"."LOC_COUNTRY_IX" ON "HR"."LOCATIONS" ("COUNTRY_ID") 
PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING 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 "EXAMPLE" ; 
CREATE INDEX "HR"."LOC_STATE_PROVINCE_IX" ON "HR"."LOCATIONS" 
("STATE_PROVINCE") 
PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING 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 "EXAMPLE" ; 
+0

Comando di Unkown, questo non funziona per me in Oracle. – jDub9

+0

stai digitando questo comando nello sviluppatore SQL? o sql plus ... ricorda anche che devi digitare il nome dello schema con punto e poi il nome della tabella ... per esempio 'ddl HR.EMPLOYEES;' assicurati che il nome dello schema e la tabella siano in lettere maiuscole. –

+0

SQL Developer ed erano in maiuscolo, ma potrebbe essere che le mie tabelle vengano create sotto una delle 30 nella sezione "altri utenti" sotto lo schema. – jDub9

Problemi correlati