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

Tabelle löschen, falls vorhanden

Sie können DDL-Anweisungen nicht direkt aus einem PL/SQL-Block ausführen – Sie müssen stattdessen EXECUTE IMMEDIATE verwenden:

declare
  i_cnt number;
begin
  select count(1) into i_cnt 
  from dba_tables where table_name=upper('foo') and owner=upper('bar'); 
  if i_cnt > 0 then 
    execute immediate 'drop table foo'; 
  end if;
end;