Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Bảng được tạo trong một thủ tục bị loại bỏ, Gặp lỗi biên dịch cho thủ tục

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. THỰC HIỆN NGAY LẬP TỨC trong plsql

  2. Cách giải quyết ORA-28000 tài khoản bị khóa

  3. Chuyển đổi kỷ nguyên sang ngày tháng trong sqlplus / Oracle

  4. Sự khác biệt về thời gian giữa các bản ghi

  5. Cách hiển thị dữ liệu bảng rõ ràng hơn trong oracle sqlplus