sql >> データベース >  >> RDS >> Oracle

Oracle11Gで最も古いパーティションを自動的に削除します

    これを行うためのOracleユーティリティまたは関数を知りません。これを行うために独自のプログラムを作成するために必要な情報は、次のようにDBA_TAB_PARTITIONSまたはALL_TAB_PARTITIONSビューにあります。

    SELECT TABLE_OWNER, TABLE_NAME, PARTITION_NAME, HIGH_VALUE
      FROM SYS.DBA_TAB_PARTITIONS
      WHERE TABLE_OWNER = strSchema AND
            TABLE_NAME = strTable
    

    ここで、strSchemaとstrTableは、関心のあるスキーマとテーブルです。HIGH_VALUEは、TO_DATE関数を呼び出すためのコードを含むLONGフィールドです(テーブルが日付フィールドでパーティション化されていると想定)。次のような方法で操作できる場所に値を取得するには、HIGH_VALUEをLONGフィールドに割り当ててから、LONGをVARCHAR2に割り当てる必要があります。

    lHigh_value     LONG;
    strDate_clause  VARCHAR2(100);
    
    lHigh_value := aRow.HIGH_VALUE;
    strDate_clause := lHigh_value;
    

    次に、削除する必要のあるパーティションを決定するために、DATE句から適切なフィールドを抽出する必要があります。

    共有してお楽しみください。



    1. Jdbcの機能チェック-セーブポイントリリース

    2. SQLサーバーで正規表現を使用する方法は?

    3. mySQLからFlaskのAPIにデータを渡す

    4. SQLServerでCHECK制約を有効にする場合のWITHNOCHECKについて知っておくべきこと