drop table my_test ;
CREATE TABLE
    my_test
    (
        TX_DATE NUMBER(8),    )
PARTITION BY RANGE (substr(tx_date,4,1))   ---------该位置报错ORA-00907: missing right parenthesis

    PARTITION my_test_PART0 VALUES less than (1) TABLESPACE my_test_data0, 
    PARTITION my_test_PART1 VALUES less than (2) TABLESPACE my_test_data1, 
    PARTITION my_test_PART2 VALUES less than (3) TABLESPACE my_test_data2, 
    PARTITION my_test_PART3 VALUES less than (4) TABLESPACE my_test_data3, 
    PARTITION my_test_PART4 VALUES less than (5) TABLESPACE my_test_data4, 
    PARTITION my_test_PART5 VALUES less than (6) TABLESPACE my_test_data5, 
    PARTITION my_test_PART6 VALUES less than (7) TABLESPACE my_test_data6, 
    PARTITION my_test_PART7 VALUES less than (8) TABLESPACE my_test_data7, 
    PARTITION my_test_PART8 VALUES less than (9) TABLESPACE my_test_data8, 
    PARTITION my_test_PART9 VALUES less than (MAXVALUE) TABLESPACE my_test_data9
);有哪位大神能够解决吗,在想法就是按年费分区,每10年一轮回。

解决方案 »

  1.   


    -- 大概这个样子 
    CREATE TABLE
        my_test
        (
            TX_DATE NUMBER(8),
            AA as (substr(tx_date,4,1))
        )
    PARTITION BY RANGE (AA)  

        PARTITION my_test_PART0 VALUES less than (1)
    .....
    )
      

  2.   

    可以通过增加字段实现
    CREATE TABLE
        my_test
        (
            TX_DATE NUMBER(8),
            create_num as (substr(tx_date,4,1))    )
    PARTITION BY RANGE (create_num)   

        PARTITION my_test_PART0 VALUES less than (1) TABLESPACE my_test_data0, 
        PARTITION my_test_PART1 VALUES less than (2) TABLESPACE my_test_data1, 
        PARTITION my_test_PART2 VALUES less than (3) TABLESPACE my_test_data2, 
        PARTITION my_test_PART3 VALUES less than (4) TABLESPACE my_test_data3, 
        PARTITION my_test_PART4 VALUES less than (5) TABLESPACE my_test_data4, 
        PARTITION my_test_PART5 VALUES less than (6) TABLESPACE my_test_data5, 
        PARTITION my_test_PART6 VALUES less than (7) TABLESPACE my_test_data6, 
        PARTITION my_test_PART7 VALUES less than (8) TABLESPACE my_test_data7, 
        PARTITION my_test_PART8 VALUES less than (9) TABLESPACE my_test_data8, 
        PARTITION my_test_PART9 VALUES less than (MAXVALUE) TABLESPACE my_test_data9
    );
      

  3.   


    隐藏不了,叫虚拟列,在 sql server 中,叫计算列;