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