Mã cần kiểm tra xem một bảng có tồn tại hay không cho biết kiến trúc phần mềm không tốt. Không cần thiết phải tạo bảng một cách nhanh chóng. Đó là một mô hình chống (ít nhất là trong Oracle). Tuy nhiên, chúng ta thường xuyên thấy các biến thể về vấn đề này, vì vậy rõ ràng là kiểu chống đối này đang phát triển mạnh trong tự nhiên.
Nếu bạn thực sự cần triển khai một giải pháp như vậy (vì bất kỳ lý do gì) thì cách tiếp cận đúng là tách mã xây dựng bảng khỏi bảng bằng cách sử dụng mã. Có các gói riêng cho chúng.
begin
pkg_ddl.build_table_xyz;
pkg_calc.run_xyz_job;
end;
Nếu bảng XYZ không tồn tại pkg_calc.run_xyz_job()
không có hiệu lực. Tuy nhiên, tính không hợp lệ sẽ không ngăn cản pkg_ddl.build_table_xyz()
khỏi thực thi. Sau đó, khi chương trình bên ngoài gọi pkg_calc.run_xyz_job()
nó sẽ biên dịch thủ tục.