Helst bör vi underhålla vårt schema ordentligt, med hjälp av källkontroll och konfigurationshantering bästa praxis. I det här scenariot vet vi i förväg om schemat vi kör våra skript mot innehåller dessa tabeller. Vi får inga felmeddelanden eftersom vi inte försöker släppa tabeller som inte finns.
Det är dock inte alltid möjligt att göra detta. Ett alternativt tillvägagångssätt är att ha två skript. Det första skriptet har bara DROP TABLE-satserna, inledda med en vänlig
PROMPT It is safe to ignore any ORA-00942 errors in the following statements
Det andra skriptet har alla CREATE TABLE-satser och leder av med
PROMPT All the statements in this script should succeed. So investigate any errors
Ett annat alternativ är att använda dataordboken:
begin
for r in ( select table_name from user_tables )
loop
execute immediate 'drop table '||r.table_name
||' cascade constraints';
end loop;
end;
Var försiktig med den här. Det är det nukleära alternativet och kommer att ta bort varje tabell i ditt schema.