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

複数のスキーマにまたがるテーブルからパーティションを削除するにはどうすればよいですか?

    DBA_TAB_PARTITIONSを使用します またはALL_TAB_PARTITIONS USER_TAB_PARTITIONSの代わりにビュー 。前の2つのビューには、TABLE_OWNERが含まれています (つまりスキーマ)目標を達成するのに役立つ列。

    次に、プロシージャをパラメータ化して、所有者とテーブルの名前をパラメータとして取得できます。

    PROCEDURE purge_ops_log_range_parts(pinOwner      IN VARCHAR2,
                                        pinTable_name IN VARCHAR2)
    IS
    BEGIN
      FOR partition_rec IN (SELECT partition_name
                                  ,high_value
                              FROM DBA_TAB_PARTITIONS
                             WHERE TABLE_OWNER = pinOwner AND
                                   table_name = pinTable_name)
      LOOP
         IF SYSDATE >= add_months(to_date(substr(partition_rec.high_value
                                                ,12
                                                ,19)
                                         ,'YYYY-MM-DD HH24:MI:SS')
                                 ,6)
         THEN
            execute_immediate('ALTER TABLE ' || pinOwner || '.' ||
                                 pinTable_name || ' DROP PARTITION ' ||
                                 partition_rec.partition_name);
         END IF;
      END LOOP;
    END purge_ops_log_range_parts;
    

    幸運を祈ります。




    1. NetBeansからリモートでjarをデバッグする方法

    2. MySQLCASTとCONVERT

    3. mysqlselectforeachの後に行を更新します

    4. SQLServerの論理演算子とは-SQLServer/TSQLチュートリアルパート124