0

私の解決策(ドイツ語で月):

PARTITION BY LIST ((to_char(GEBURTSDATUM, 'Month'))) 
(  
  PARTITION p1 VALUES('JANUAR'),  
  PARTITION p2 VALUES('Februar'), 
  PARTITION p3 VALUES('MÄRZ'),  
  PARTITION p4 VALUES('APRIL'), 
  PARTITION p5 VALUES('MAI'),  
  PARTITION p6 VALUES('JUNI'), 
  PARTITION p7 VALUES('JULI'), 
  PARTITION p8 VALUES('AUGUST'),
  PARTITION p9 VALUES('SEPTEMBER'),
  PARTITION p10 VALUES('OKTOBER'), 
  PARTITION p11 VALUES('NOVEMBER'),
  PARTITION p12 VALUES('DEZEMBER') 
);  

機能のため、これは機能しませんto_char

4

2 に答える 2

3

11gでは、仮想列を定義することで関数ベースのパーティショニングを使用できます。http ://www.oracle-base.com/articles/11g/partitioning-enhancements-11gr1.php#virtual_column_based_pa​​rtitioning

それ以外の場合は、パーティショニング月の個別の列を手動で定義して更新する必要があります。

どちらの場合も、名前の代わりに月番号を使用することをお勧めします。

于 2013-01-07T19:50:54.723 に答える
1

テーブルに日付列がある場合、以下のステートメントは、今日から始まる月ごとのパーティション分割の例として使用できます (Oracle 11g):

PARTITION BY RANGE (date_column)
            INTERVAL (NUMTODSINTERVAL(1,'month') )
             (PARTITION p_first VALUES LESS THAN ('16-MAY-2016'));
于 2016-06-16T11:55:05.523 に答える