2013-08-16 29 views

Trả lời

31

Nếu bạn đang hỏi về SQL * Plus lệnh (show create table table_name không xuất hiện như một câu lệnh SQL), bạn có thể sử dụng desc lệnh

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) 

Nếu bạn thực sự muốn có một câu lệnh SQL, bạn có thể sử dụng các dbms_metadata gói

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 

Tùy thuộc vào công cụ mà bạn đang sử dụng, bạn có thể cần phải chạy set long 10000 đầu tiên, mà nói với SQL * Plus để hiển thị 10.000 byte đầu tiên của bất kỳ LOB được chọn. Nếu DDL của bạn dài hơn, hãy đặt giá trị lớn hơn.

5

Sử dụng DESC:

DESC mytable 

sẽ cho bạn thấy những cột, nhưng tiếc là tạo ra tuyên bố là không có sẵn bằng các công cụ oracle chuẩn.

+2

lệnh desc không hiển thị hạn chế và các phím và lập chỉ mục – nightograph

+0

@nightograph câu hỏi không yêu cầu hạn chế và các phím; nó chỉ yêu cầu * định nghĩa bảng (cột với các kiểu dữ liệu của chúng vv) * – Bohemian

+3

câu hỏi được yêu cầu tương đương với "show create table" trong Oracle, DESC không tương đương vì "show create" hiển thị các chỉ mục khóa và DESC không – nightograph

5

SQL> set dài 1000

SQL> thiết pagesize 0

SQL> chọn DBMS_METADATA.GET_DDL ('TABLE', 'BẢNG TÊN' [, 'SCHEMA']) từ DUAL

3

Nếu bạn đang sử dụng PL/SQL Developer; Nhấp chuột phải vào bảng, chọn View, ở phía dưới bên phải của cửa sổ xem, nhấp vào nút 'Xem SQL'.

0

DDL đang làm việc cho tôi và đơn giản hơn bạn chỉ cần có để viết DDL (SCHEMA_OWNER).(TABLE_NAME) ... ví dụ ddl HR.LOCATIONS; .... HR là giản đồ và LOCATION là tên bảng ... chắc chắn rằng bạn viết cả tên SCHEMA và bảng NAME tại thủ đô ở đây sản lượng sẽ được

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

Lệnh không xác định, điều này không làm việc cho tôi trong Oracle. – jDub9

+0

bạn có đang gõ lệnh này trong nhà phát triển SQL không? hoặc sql plus ... cũng lưu ý rằng bạn phải nhập tên lược đồ có dấu chấm và sau đó là tên bảng ... ví dụ: 'ddl HR.EMPLOYEES;' đảm bảo tên lược đồ và bảng nằm trong các chữ hoa. –

+0

Nhà phát triển SQL và chúng được viết hoa, nhưng có thể là các bảng của tôi được tạo bên dưới một trong 30 trong phần ‘người dùng khác’ bên dưới lược đồ. – jDub9

Các vấn đề liên quan