Kód, který potřebuje zkontrolovat, zda tabulka existuje, označuje špatnou softwarovou architekturu. Nemělo by být potřeba vytvářet tabulky za chodu. Je to anti-vzor (alespoň v Oracle). Variace na tento problém však vidíme dostatečně často, takže je zřejmé, že tomuto anti-vzoru se ve volné přírodě daří.
Pokud skutečně potřebujete implementovat takové řešení (z jakéhokoli důvodu), správným přístupem je oddělit kód sestavování tabulky od tabulky pomocí kódu. Mějte pro ně samostatné balíčky.
begin
pkg_ddl.build_table_xyz;
pkg_calc.run_xyz_job;
end;
Pokud tabulka XYZ neexistuje pkg_calc.run_xyz_job()
je neplatný. Jeho neplatnost však nezabrání pkg_ddl.build_table_xyz()
od provedení. Poté, když vnější program zavolá pkg_calc.run_xyz_job()
zkompiluje proceduru.