Control file Control file chứa những thông tin miêu tả cách mà dữ liệu được nạp.. WHEN VD WHEN name != ‘ Mays ' CONTINUEIF THIS start_position:end_position = value VD CONTINUEIF TH
Trang 1Giáo viên HD: Nguyễn Thị Kim Phụng
Trang 2Nội dung
Giới thiệu về Oracle SQL Loader
File đầu vào :Control file, data file
File đầu ra: Database, Log file,
bad file, discard file
Demo
Trang 5Control file
Control file chứa những thông tin miêu tả cách mà dữ liệu được nạp
Nó bao gồm table name, column datatypes,
1 dạng cấu trúc của Control file:
LOAD DATA
INFILE '<file_name>'
APPEND
CONTINUEIF THIS (start_position:end_position) = value
INTO TABLE table_name
(
<column_name> POSITION(<integer>:<integer>) <data_type>,
<column_name> POSITION(<integer>:<integer>) <data_type>,
<column_name> POSITION(<integer>:<integer>) <data_type>)
Trang 6 Các kiểu Load dữ liệu
Trang 7 WHEN <condition> VD WHEN name != ‘ Mays '
CONTINUEIF THIS (start_position:end_position) = value
VD CONTINUEIF THIS (1:2) = '%%'
INFILE :Xác định tên file chứa dữ liệu nạp vào database, dấu * cho biết dữ liệu sẽ được lấy ngay trong control file, phía sau của từ khoá BEGINDATA
BEGINDATA: Từ khoá xác định điểm bắt đầu chứa dữ liệu, sau từ khoá này là dữ liệu cần nạp vào database.
BADFILE: Xác định tên của các file lưu các dữ liệu không thể nạp được vào database do phát sinh lỗi trong quá trình nạp dữ liệu.
DISCARDFILE : Xác định tên của file lưu các dòng dữ liệu
bị bỏ qua không nạp vào database do không đúng với tiêu chuẩn nạp dữ liệu
Các từ khóa thường gặp
Trang 8 INSERT: Thêm mới 1 dòng dữ liệu trong database
APPEND : Chèn thêm một dòng dữ liệu vào cuối cùng của bảng
TRAILING NULLCOLS : Điền giá trị null vào cột
POSITION: Từ khoá dùng để xác định vị trí của dữ liệu cần nạp
CONSTANT : Đặt giá trị hằng số cho cột dữ liệu
RECNUM : Đếm số lượng dòng dữ liệu đã được nạp
SYSDATE : Trả về giá trị ngày giờ hiện thời
TERMINATED : Từ khoá xác định phân cách kết thúc
ENCLOSED :Từ khoá dùng để xác định đường bao dữ liệu
Trang 9INTO TABLE emp (
empno POSITION(1:4) INTEGER EXTERNAL,ename POSITION(6:15) CHAR,
hiredate POSITION(52:60) INTEGER EXTERNAL)
Trang 10Phân loại control file
Có 2 loại chính:
Nạp trực tiếp:
VD:
LOAD DATA INFILE *
INTO TABLE dept
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' (deptno, dname, loc)
BEGINDATA
12,RESEARCH,"SARATOGA"
10,"ACCOUNTING",CLEVELAND 11,"ART",SALEM
13,FINANCE,"BOSTON"
21,"SALES",PHILA.
22,"SALES",ROCHESTER 42,"INT'L","SAN FRAN"
Trang 12Data file
File dữ liệu chứa các bản ghi được xử lý theo một định dạng đã định nghĩa trong control file
Trang 14Log file
Luôn được tạo ra sau khi load dữ liệu
Bao gồm các thông tin sau:
Phần header: thời gian chạy, phiên bản của phần mềm
Các thông tin toàn cục: tên của input file và output file, các tham số
dòng lệnh
Các thông tin bảng: tên bảng, điều kiện load và phương pháp load
Thông tin về các trường và cột
Thông tin về tệp dữ liệu: chỉ ra các bản ghi bị từ chối và loại bỏ và lí do
bị từ chối hay loại bỏ
Thông tin load các bảng: số các hàng đã được load, số các hàng bị từ chối vì lỗi dữ liệu, số các hàng bị loại bỏ
Thông tin tổng hợp: hiển thị dữ liệu sau: số lượng không gian được thiết lập cho mảng, thông tin thống kê cho tất cả các data file
Thời gian bắt đầu và thời gian kết thúc quá trình load
Trang 16 Không thể chèn thêm các bản ghi vào table Chẳng hạn như
dữ liệu nạp vào không hợp lệ, các constraints bị vi phạm.
Trang 18Discard file
Chứa dữ liệu như định dạng của tệp dữ liệu đưa vào, nó chứa các bản ghi không thoả mãn điều kiện load
Trang 20Câu lệnh thực thi:
sqlldr userid = username/pass control = đường dẫn chứa file control log = đường dẫn chứa file log
Trang 21Demo