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

Oracle - Nhập dữ liệu vào một bảng với một tên khác?

Nếu bạn đang sử dụng các tiện ích EXP và IMP cũ, bạn không thể thực hiện việc này. Tùy chọn duy nhất là nhập vào một bảng cùng tên (mặc dù bạn có thể thay đổi lược đồ sở hữu bảng.

Tuy nhiên, bạn nói rằng bạn đang ở trên 11g. Tại sao không sử dụng tiện ích DataPump được giới thiệu trong 10g, tiện ích thay thế Nhập và Xuất. Bởi vì trong 11g, tiện ích đó cung cấp tùy chọn REMAP_TABLE thực hiện chính xác những gì bạn muốn.

chỉnh sửa

Sau khi đọc các nhận xét mà OP đã thêm vào một phản hồi khác trong khi tôi viết bài này, tôi không nghĩ rằng tùy chọn REMAP_TABLE sẽ hoạt động trong trường hợp của họ. Nó chỉ đổi tên các đối tượng mới. Nếu bảng có tên gốc tồn tại trong lược đồ mục tiêu, quá trình nhập không thành công với ORA-39151. Xin lỗi.

chỉnh sửa bis

Với giải pháp mà OP cuối cùng đã chọn (bỏ bảng hiện có, thay thế bằng bảng mới), có một giải pháp với Data Pump, đó là sử dụng TABLE_EXISTS_ACTION={TRUNCATE | REPLACE} mệnh đề. Chọn REPLACE bỏ bảng trong khi TRUNCATE chỉ đơn thuần, er, cắt ngắn nó. Trong cả hai trường hợp, chúng tôi phải lo lắng về các ràng buộc toàn vẹn tham chiếu, nhưng đó cũng là một vấn đề với giải pháp đã chọn.

Tôi đăng phụ lục này không phải cho OP mà vì lợi ích của những người tìm kiếm khác, những người tìm thấy trang này trong tương lai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apache Dbutils thay đổi tên cột trong bản cập nhật Sql

  2. Truy vấn SQL 00904. 00000 -% s:mã định danh không hợp lệ

  3. oracle sql plus spool

  4. thiết kế cơ sở dữ liệu cho cài đặt thông báo

  5. Oracle 10g Múi giờ nhầm lẫn