还有个问题想请教一下在建表的时候,比如说向下面的SQL文
CREATE TABLE RKSETL (
...
  CONSTRAINT RKSETLPK
  PRIMARY KEY ( SETLDATE, SETLNO )
    USING INDEX
     TABLESPACE  PCTFREE     STORAGE ( INITIAL K NEXT K PCTINCREASE  ))
 TABLESPACE
   PCTFREE    PCTUSED
   INITRANS    MAXTRANS

 STORAGE (
   INITIAL K NEXT K PCTINCREASE
   MINEXTENTS  MAXEXTENTS  )
   NOCACHE;红色的SQL文有什么作用?
为什么在执行的时候一直报错
ORA-02216: tablespace name expected这个问题应该怎么解决阿?

解决方案 »

  1.   

    PCTFREE PCTUSED INITRANS MAXTRANS 这四个变量好像是系统自己分配空间用的,这个应该在什么地方设置?
      

  2.   

    第一个问题我不太清楚:不过你用Oracle企业管理工具新建表的时候可以看到默认参数。
    单个表设置就是刚才的SQl语句中你可以设置啊。根据表的不同用途设置
      

  3.   

    CREATE   TABLE   RKSETL   ( 
    ... 
        CONSTRAINT   RKSETLPK 
        PRIMARY   KEY   (   SETLDATE,   SETLNO   ) 
            USING   INDEX 
              TABLESPACE 
    这里要写你准备把这个主键产生的索引存放到哪个表空间里去
        PCTFREE           这里填上你计划在每一个extent里留多少空间,发防发生行迁移
    STORAGE   (   INITIAL   K   NEXT   K   PCTINCREASE     )) 
      TABLESPACE 
          PCTFREE         每一个extent里留多少空间给update用,以防发生行迁移
    PCTUSED               每一个extent里,当发生delete时,还使用空间低于这个比例后写空闲空间列表
          INITRANS         最少给分配多少个extent
    MAXTRANS               最多给分配多少个extent
      STORAGE   ( 
          INITIAL   K   NEXT   K   PCTINCREASE 
          MINEXTENTS     MAXEXTENTS     ) 
          NOCACHE;