如果我在Oracle中有一个表student,我要做一个和student一样的表,用Oracle的“类似表做成”,这时候出问题了,如果student表中没有设置主键那么操作顺利完成;反之,如果student表中设置了主键,这时候,用Oracle的“类似表做成”的话会出错,不知道为什么?请高手指导?

解决方案 »

  1.   

    "类似表做成"是不是界面里的选项,
    如果对应到sqlplus中是不是就是"create table xxx as select * from yyy;"?在sqlplus中没有问题,只是类似创建的表没有主键等约束,只是表结构相同,数据相同,约束没有复制。
      

  2.   

    在sql plus里可以,但是在Oracle界面里为什么不行?
    而且在sql plus里建成后,在Oracle界面里用作好的副本可以执行同样的"类似表做成",但是原来的表却不行。
      

  3.   

    看看你的那个"类似表做成"有没有源代码sql可以看到?
    分析一下源代码sql
      

  4.   

    Oracle学的不多看不大懂,把源码贴出来,大家看看哪里出错了:
    CREATE TABLE "JHF"."AA" ("ID" VARCHAR2(2 byte) NOT NULL, "NAME" 
        VARCHAR2(20 byte), "CLASS" VARCHAR2(20 byte), 
        CONSTRAINT "CLASS_PK11122277324859_1" PRIMARY KEY("ID") 
        USING INDEX  
        TABLESPACE "USERS" 
        STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
        2147483645 PCTINCREASE 0 FREELISTS 0 FREELIST GROUPS 0) 
        PCTFREE 10 INITRANS 2 MAXTRANS 255)  
        TABLESPACE "USERS" PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 
        255 
        STORAGE ( INITIAL 64K NEXT 0K MINEXTENTS 1 MAXEXTENTS 
        2147483645 PCTINCREASE 0) 
        LOGGING