Oracle 多键值分区测试


分区可以按照两个字段分区,先比较第一个列,如果满足,则忽略第二列,如果第一个不满足,则需要比较第二个列。这种分区的方式有点难以让人理解,建议不要使用。

SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production


SQL> create table test (

      year          number(4),
      month        number(4),
      day          number(4))
    partition by range (year,month)
      (partition p1 values less than (2014,1),
      partition p2 values less than (2014,6),
      partition p3 values less than (2014,10),
      partition p4 values less than (2014,12),
      partition p_max values less than (MAXVALUE,0));

SQL> insert into test values(2013,12,12);
SQL> insert into test values(2014,1,17);
SQL> insert into test values(2014,7,17);
SQL> insert into test values(2014,11,1);
SQL> commit;
SQL> select * from test partition(p1);
      YEAR      MONTH        DAY
---------- ---------- ----------
      2013        12        12
SQL> select * from test partition(p2);
      YEAR      MONTH        DAY
---------- ---------- ----------
      2014          1        17
SQL> select * from test partition(p3);
      YEAR      MONTH        DAY
---------- ---------- ----------
      2014          7        17
SQL> select * from test partition(p4);
      YEAR      MONTH        DAY
---------- ---------- ----------
      2014        11          1

相关内容