Kod som behöver kontrollera om en tabell finns indikerar dålig mjukvaruarkitektur. Det borde inte finnas något behov av att skapa tabeller i farten. Det är ett antimönster (åtminstone i Oracle). Men vi ser variationer på detta problem tillräckligt ofta, så det är uppenbart att detta antimönster frodas i naturen.
Om du verkligen behöver implementera en sådan lösning (av någon anledning) är det korrekta tillvägagångssättet att separera tabellbyggnadskoden från tabellen med hjälp av kod. Ha separata paket för dem.
begin
pkg_ddl.build_table_xyz;
pkg_calc.run_xyz_job;
end;
Om tabellen XYZ inte finns pkg_calc.run_xyz_job()
är ogiltig. Men dess ogiltighet hindrar inte pkg_ddl.build_table_xyz()
från att utföra. Sedan, när det yttre programmet anropar pkg_calc.run_xyz_job()
det kommer att kompilera proceduren.