CREATE TABLE T_FARS_SRC_DATA_KEY_MAP
   (  
   
         JOB_ID   NUMBER(10,0) NOT NULL ENABLE, 
         PERSON_ID VARCHAR2(50) NOT NULL ENABLE, --源库第一主键
         IMAGE_ID  VARCHAR2(50) NOT NULL ENABLE, --源库第二主键
         SEQ_KEY    NUMBER(20,0)
   );
   
  PARTITION BY RANGE(JOB_ID)  INTERVAL (1)
  
  STORE IN (TS_FARS_PERSON_DATA1,TS_FARS_PERSON_DATA2,TS_FARS_PERSON_DATA3,TS_FARS_PERSON_DATA4)
  (
        PARTITION PART_KEY_MAP_1 VALUES  LESS THAN (2)
  );
  
  ALTER TABLE T_FARS_SRC_DATA_KEY_MAP
  ADD CONSTRAINT P$KEYMAP__JOB_PERSON_IMAGE PRIMARY KEY (JOB_ID, PERSON_ID, IMAGE_ID);
上边的语句执行不过去,大大们帮我看看有什么语法错误,急~~~~~~~~~~~~

解决方案 »

  1.   


    --去掉那个多余的;
    CREATE TABLE T_FARS_SRC_DATA_KEY_MAP
       (    
             JOB_ID   NUMBER(10,0) NOT NULL ENABLE, 
             PERSON_ID VARCHAR2(50) NOT NULL ENABLE, --??????
             IMAGE_ID  VARCHAR2(50) NOT NULL ENABLE, --??????
             SEQ_KEY    NUMBER(20,0)
       )   
      PARTITION BY RANGE(JOB_ID)  INTERVAL (1)
        STORE IN (TS_FARS_PERSON_DATA1,TS_FARS_PERSON_DATA2,TS_FARS_PERSON_DATA3,TS_FARS_PERSON_DATA4)
      (
            PARTITION PART_KEY_MAP_1 VALUES  LESS THAN (2)
      );
      
      ALTER TABLE T_FARS_SRC_DATA_KEY_MAP
      ADD CONSTRAINT P$KEYMAP__JOB_PERSON_IMAGE PRIMARY KEY (JOB_ID, PERSON_ID, IMAGE_ID);
      

  2.   

    --怎么会?我试下来可以的,不过我把表空间列表那里换成了我的环境上的表空间而已
    scott@ORA11GR2> CREATE TABLE T_FARS_SRC_DATA_KEY_MAP
      2     (
      3           JOB_ID   NUMBER(10,0) NOT NULL ENABLE,
      4           PERSON_ID VARCHAR2(50) NOT NULL ENABLE, --??????
      5           IMAGE_ID  VARCHAR2(50) NOT NULL ENABLE, --??????
      6           SEQ_KEY    NUMBER(20,0)
      7     )
      8    PARTITION BY RANGE(JOB_ID)  INTERVAL (1)
      9      STORE IN (USERS,EXAMPLE)
     10    (
     11          PARTITION PART_KEY_MAP_1 VALUES  LESS THAN (2)
     12    );Table created.scott@ORA11GR2>   ALTER TABLE T_FARS_SRC_DATA_KEY_MAP
      2    ADD CONSTRAINT P$KEYMAP__JOB_PERSON_IMAGE PRIMARY KEY (JOB_ID, PERSON_ID, IMAGE_ID);Table altered.
      

  3.   

    语法没有问题,去掉partition前面的分号即可,楼主好好测测
      

  4.   

    语法问题
    CREATE TABLE T_FARS_SRC_DATA_KEY_MAP
       (  
       
             JOB_ID   NUMBER(10,0) NOT NULL ENABLE, 
             PERSON_ID VARCHAR2(50) NOT NULL ENABLE, --源库第一主键
             IMAGE_ID  VARCHAR2(50) NOT NULL ENABLE, --源库第二主键
             SEQ_KEY    NUMBER(20,0)
       )[b];[/b]
       
      PARTITION BY RANGE(JOB_ID)  INTERVAL (1)
    这个分号去掉
      

  5.   


    DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
      

  6.   

    你的数据库版本是多少?10g好像不能用store in来指定表空间,store in是hash partition的语法试试下面的语法:
    (PARTITION PART_KEY_MAP_1 VALUES  LESS THAN (2) tablespace users)那个分号是一定要去掉的,无论那个版本