Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle :Löschen Sie mehrere Partitionen

Sie können dynamic sql verwenden in anonymous pl/sql blockieren;

Begin
  for i in (select part_name from ...  //expression to get partition names) loop
    execute immediate 'ALTER TABLE TMP DROP PARTITION ' || i.part_name;
  end loop;
end;

Zum Löschen mehrerer Partitionen auf einmal;

declare
  v_part varchar(1000);
Begin
  select LISTAGG(partition_name, ', ') WITHIN GROUP (ORDER BY partition_name DESC)
  into v_part  
  from ...  //expression to get partition names;
  execute immediate 'ALTER TABLE TMP DROP PARTITION ' || v_part;
end;