Một ví dụ về bulk load trong Oracle, trong đoạn script sau ta đưa data vào một cursor trước, sau đó dùng bulk load
DECLARE Type t_list IS TABLE OF account_list%RowType; l_list t_list; CURSOR c_c IS SELECT * FROM account_list; BEGIN OPEN c_c; FETCH c_c bulk collect INTO l_list; for i in 1..l_list.count loop dbms_output.put_line(l_list(i).account_list_id); end loop; END;
Để thực hiện bulk insert trong Oracle, như bài viết dưới đây, người ta có thể dùng For để insert từng dòng, cách này rất mất thời gian.
Sau đó người ta khuyên dùng Bulk Collect để thực hiện bulk insert, cách này nhanh hơn.
Nhưng dùng bulk Collect cũng không hiệu quả nếu ta đưa qua một lúc tất cả record của một table lớn, người ta khuyên dùng cursor kết hợp với Bulk Collect.
Link tham khảo: http://www.akadia.com/services/ora_bulk_insert.html http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/selectinto_statement.htm
0 comments:
Post a Comment