Kode yang perlu memeriksa apakah ada tabel menunjukkan arsitektur perangkat lunak yang buruk. Seharusnya tidak perlu membuat tabel dengan cepat. Ini anti-pola (setidaknya di Oracle). Namun, kami cukup sering melihat variasi pada masalah ini, jadi jelas bahwa anti-pola ini berkembang pesat di alam liar.
Jika Anda benar-benar perlu menerapkan solusi seperti itu (untuk alasan apa pun), pendekatan yang benar adalah memisahkan kode pembuatan tabel dari tabel menggunakan kode. Miliki paket terpisah untuk mereka.
begin
pkg_ddl.build_table_xyz;
pkg_calc.run_xyz_job;
end;
Jika tabel XYZ tidak ada pkg_calc.run_xyz_job()
tidak valid. Namun ketidakabsahannya tidak akan mencegah pkg_ddl.build_table_xyz()
dari mengeksekusi. Kemudian, ketika program luar memanggil pkg_calc.run_xyz_job()
itu akan mengkompilasi prosedur.