Thiết lập điển hình cho Oracle Loader với LOB sẽ là:
- Tệp điều khiển có hướng dẫn tải
- Có một tệp dữ liệu chính với siêu dữ liệu (tác giả, ngày tháng, tên tệp). Mỗi dòng trong tệp sẽ trở thành một hàng trong bảng đích.
- Có một tệp riêng cho mỗi mục nhập trong tệp chính, tệp này được tải vào cột CLOB hoặc BLOB của bảng đích.
Trong trường hợp của bạn, các tệp XML dường như được sử dụng làm cả tệp dữ liệu chính và tệp LOB riêng biệt (mặc dù tôi không hiểu rõ lý do tại sao; bạn cũng chỉ định XML trên dòng lệnh?).
Vì vậy, bạn cần xác định đúng ba điều này. Để tránh ba tệp, bạn đặt tệp dữ liệu chính vào tệp điều khiển bằng cách sử dụng lệnh BEGINDATA (đây là điều mà astrisk sau INFILE dành cho):
LOAD DATA
INFILE *
REPLACE
INTO TABLE LEAD_REPORTING_CLOB
FIELDS TERMINATED BY ',' TRAILING NULLCOLS
(
FILENAME,
SHARED_XML LOBFILE(FILENAME) TERMINATED BY EOF
)
BEGINDATA
/export/RFD/Lead_Reports/LEADRPT.xml