選択パーティションのアーカイブを実行するためには、ARCHIVEスクリプトのPARTITIONS WHEREオプションで条件式を指定します。 この条件式には、アーカイブ対象テーブルのパーティションを定義している列を参照してください。
PARTITIONS WHEREキーワード
PARTITIONS WHEREオプションは、アーカイブする行を条件式に定義するために使用します。 この条件式を効率的に機能させるためには、アーカイブするテーブルのパーティションを決定している列のみを参照するようにします。
PARTITIONS WHEREを使用する場合は、次の制約があります。
- 処理対象が、個々のテーブルである(データベースではない)こと。
- ソース テーブルに、PARTITIONS BY式が定義されていること。
- アーカイブが、全AMPレベルのアーカイブであること(ディクショナリ、クラスタ、ジャーナルのアーカイブではないこと)。
- INDEXESオプションが使用されていないこと。
- 対象となるテーブルが、ARCHIVE文で指定されたデータベースに属している場合は、そのテーブルが(EXCLUDE TABLESを使用して)データベース レベル オブジェクトから除外され、個別に指定されていること。
- 条件式で指定された名前は、指定されているテーブル内にあります。(テーブルを使用すると、ターゲット テーブル内で指定されていないデータベース、テーブル、またはビューへのエイリアスと参照がエラーになります。)PARTITIONS WHERE条件内の参照列のみをテーブルのパーティション列またはシステム派生列のPARTITIONにすることを推奨します。他の列への参照はパーティション排除の役に立たず、意図したよりも多くのパーティションを誤って修飾する可能性があります。
アーカイブ キーワードの例
次の例は、SYSDBAデータベースのTransactionHistoryテーブルに含まれる2002年7月の行をすべてアーカイブします。
ARCHIVE DATA TABLES (SYSDBA.TransactionHistory) (PARTITIONS WHERE (! TransactionDate BETWEEN DATE ‘2002-07-01’ AND DATE ‘2002-07-31’ !) ) , RELEASE LOCK, FILE=ARCHIVE;