0

手動で入力することなくパーティションのリストを生成したいと思います。また、作成するパーティションの数を選択することもできます。範囲によるパーティションを使用しています。以下の例を参照してください。

P_PARTITION_20120830 VALUES LESS THAN ('2012-08-30')
P_PARTITION_20120930 VALUES LESS THAN ('2012-09-30')
P_PARTITION_20121030 VALUES LESS THAN ('2012-10-30')
...
and so on

これが私がこれまでにやってきたことです。

select  'P_PARTITION_' || to_char(add_months(sysdate, 1),'YYYYMMDD')
|| ' VALUES LESS THAN ' || to_char(sysdate, '(''YYYY-MM-DD'')') 
from dual;

フィードバックをいただければ幸いです。ありがとうございました。

4

2 に答える 2

2

これにより、12か月間のパーティション名が生成されます。CONNECT BY句の境界を調整して、必要な数を生成します。

select  'P_PARTITION_' || to_char(add_months(sysdate, level),'YYYYMMDD') 
|| ' VALUES LESS THAN ' || to_char(sysdate, 'YYYY-MM-DD')  
from dual
connect by level <= 12; 
于 2012-07-26T07:49:06.497 に答える
2

どのバージョンの Oracle を使用していますか? 11g を使用している場合は、必要に応じて Oracle にパーティションを作成してもらうことができます。これは、DBA の作業が軽減されることを意味します。

Oracle では、これを「インターバル パーティショニング」と呼んでいます。

構文についてはhttp://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_7002.htm#BABJDACDを参照してください。例についてはhttp://docs.oracle.com/cd/E11882_01/serverを参照してください。 .112/e25523/part_admin001.htm#autoId3

于 2012-07-26T07:58:52.787 に答える