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

ORA xóa / cắt ngắn

Việc xóa các bản ghi theo lô có thể được thực hiện trong một vòng lặp PL / SQL, nhưng thường được coi là hành vi xấu vì toàn bộ việc xóa thường được coi là một giao dịch duy nhất; và điều đó không thể thực hiện được từ bên trong tệp điều khiển SQL * Loader. DBA của bạn phải có kích thước UNDO không gian để đáp ứng công việc bạn cần làm.

Nếu bạn đang xóa toàn bộ bảng thì gần như chắc chắn bạn vẫn nên cắt bớt đi trong tệp điều khiển :

Tùy chọn
options(skip=1,load=250000,errors=0,ROWS=30000,BINDSIZE=10485760)
load data
infile 'G:1.csv' "str '^_^'"
truncate
into table IMPORT_ABC
...

Hoặc dưới dạng truncate riêng biệt câu lệnh trong SQL * Plus / SQL Developer / một số ứng dụng khách khác trước khi bạn bắt đầu tải:

truncate table import_abc;

Điều bất lợi là bảng của bạn sẽ xuất hiện trống cho những người dùng khác trong khi các hàng mới đang được tải, nhưng nếu đó là khu vực nhập chuyên dụng (đoán từ tên) thì điều đó có thể không thành vấn đề.

Nếu UNDO của bạn thực sự nhỏ như vậy thì bạn có thể phải chạy nhiều lần tải, trong trường hợp đó - có thể là rõ ràng - bạn cần đảm bảo rằng bạn chỉ có truncate trong tệp điều khiển cho tệp đầu tiên (hoặc sử dụng truncate riêng biệt tuyên bố) và có append thay vào đó trong các tệp điều khiển tiếp theo như bạn đã lưu ý trong nhận xét.

Bạn cũng có thể muốn xem xét bảng bên ngoài nếu bạn đang sử dụng dữ liệu này làm cơ sở để điền vào thứ khác, vì không có UNDO chi phí thay thế nguồn dữ liệu bên ngoài. Có thể bạn sẽ cần nói chuyện với DBA của mình về việc thiết lập điều đó và cấp cho bạn các quyền thư mục cần thiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. VS2010 + Trình điều khiển Oracle:ORA-12154:TSN:không thể phân giải mã định danh kết nối được chỉ định

  2. Hiển thị các giá trị LISTAGG trong một ô dựa trên giá trị của một cột khác

  3. ORA-00900:câu lệnh SQL không hợp lệ- khi chạy một thủ tục trong oracle 10g

  4. Tại sao Oracle không cho bạn biết BẰNG bảng hoặc khung nhìn nào không tồn tại?

  5. Cài đặt Oracle 12c Standard Edition trên Windows 10 Professional