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

Tạo hoặc thay thế bảng trong Oracle pl / sql

Bạn thực sự không nên làm điều này trong PL / SQL, các bảng được tạo trong thời gian chạy sẽ là dấu hiệu của một lỗ hổng trong mô hình dữ liệu của bạn. Nếu bạn thực sự thuyết phục rằng bạn nhất thiết phải làm điều này thì hãy điều tra bảng tạm thời Đầu tiên. Cá nhân tôi đánh giá lại xem nó có cần thiết không.

Có vẻ như bạn sẽ tham gia EAFP thay vì LBYL cách tiếp cận, được mô tả trong một vài câu trả lời cho câu hỏi này . Tôi cho rằng điều này là không cần thiết. Bảng là một con thú khá tĩnh, bạn có thể sử dụng chế độ xem hệ thống USER_TABLES để xác định xem nó có tồn tại hay không trước khi loại bỏ nó.

declare

   l_ct number;

begin

   -- Determine if the table exists.
   select count(*) into l_ct
     from user_tables
    where table_name = 'THE_TABLE';

   -- Drop the table if it exists.
   if l_ct = 1 then
      execute immediate 'drop table the_table';
   end if;

   -- Create the new table it either didn-t exist or
   -- has been dropped so any exceptions are exceptional.
   execute immediate 'create table the_table ( ... )';

end;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vấn đề ràng buộc khóa ngoại trong Oracle

  2. Làm thế nào để gọi thủ tục được lưu trữ oracle bao gồm kiểu do người dùng xác định trong java?

  3. Nhân viên trùng lặp trong bảng do chuyển đổi trong bộ phận

  4. Truy vấn tự động JDBC trở nên rất chậm

  5. Mệnh đề 'Trong' trong máy chủ SQL có nhiều cột