Ringkasan : dalam tutorial ini, Anda akan mempelajari cara menggunakan alat Oracle SQL*Loader untuk memuat dari file datar ke dalam tabel di database.
Pengantar alat SQL*Loader
SQL*Loader memungkinkan Anda memuat data dari file eksternal ke dalam tabel di database. Itu dapat mengurai banyak format file yang dibatasi seperti CSV, tab-delimited, dan pipe-delimited.
SQL*Loader menyediakan metode berikut untuk memuat data:
Pemuatan jalur konvensional – membuat INSERTpernyataan dari konten file data input berdasarkan spesifikasi yang telah ditentukan sebelumnya dan menjalankan penyisipan.
Beban jalur langsung – membuat blok data dalam format blok database Oracle dari file data dan langsung menulis blok data ke database. Cara ini jauh lebih cepat daripada jalur konvensional tetapi tunduk pada beberapa batasan.
Beban tabel eksternal – buat tabel eksternal untuk data yang disimpan dalam file data dan jalankan INSERTpernyataan untuk memasukkan data dari file data ke tabel target. Beban tabel eksternal mendukung pemuatan paralel jika file data cukup besar.
Untuk menjalankan alat SQL*Load, Anda memerlukan setidaknya tiga file:
File data input menyimpan data yang dibatasi atau mentah
File parameter menyimpan lokasi file input/output
File kontrol berisi spesifikasi tentang bagaimana data dimuat.
Setelah itu, Anda menjalankan perintah sqlldrdari baris perintah di Windows atau Terminal di GNU/Linux:
>sqlldr parfile=parameter_file.par
Bahasa kode: SQL (Structured Query Language) ( sql )
Gambar berikut mengilustrasikan proses SQL*Loader:
Mari kita ambil contoh penggunaan alat SQL*Load.
Contoh SQL*Loader
Kami akan memuat data email format file CSV ke dalam emailstabel di database.
Dalam file parameter ini, kami menentukan pengguna ( userid) yang akan terhubung ke database Oracle, file kontrol ( email.ctl), file log ( email.log), dan file data ( email.dat).
File email.badmenyimpan data yang tidak valid. Dan baris terakhir direct=truemenginstruksikan SQL*Loader untuk menggunakan metode pemuatan jalur langsung.
Perhatikan bahwa tidak ada spasi antara parameter dan nilai, misalnya:
control=email.ctrl
Bahasa kode: SQL (Structured Query Language) ( sql )
Setelah memiliki tiga file, Anda dapat meletakkannya di direktori misalnya C:\loader.
Berikut ini tautan untuk mengunduh ketiga file dalam format file zip:
Ketiga, masuk ke Oracle dan verifikasi isi emailstabel:
SELECT * FROM emails;
Bahasa kode: SQL (Structured Query Language) ( sql )
Berikut adalah hasil yang ditetapkan:
Terakhir, tinjau file log:
SQL*Loader: Release 12.1.0.2.0 - Production on Tue Jul 2308:04:462019
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
Control File: email.ctl
Data File: email.dat
Bad File: email.bad
Discard File: none specified
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50Continuation: none specified
Path used: Direct
Table EMAILS, loaded from every logical record.
Insert option in effect forthis table: INSERT
Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
EMAIL_ID FIRST * , CHARACTER
EMAIL NEXT * , CHARACTER
The following index(es) on table EMAILS were processed:
index OT.SYS_C0010446 loaded successfully with3 keys
Table EMAILS:
3 Rows successfully loaded.
0 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.
Bind array size not used in direct path.
Column array rows : 5000
Stream buffer bytes: 256000
Read buffer bytes: 1048576
Total logical records skipped: 0
Total logical records read: 3
Total logical records rejected: 0
Total logical records discarded: 0
Total stream buffers loaded by SQL*Loader main thread: 2
Total stream buffers loaded by SQL*Loader load thread: 0
Run began on Tue Jul 2308:04:462019
Run ended on Tue Jul 2308:04:482019
Elapsed time was: 00:00:01.47
CPU time was: 00:00:00.07
Bahasa kode: JavaScript ( javascript )
Dalam tutorial ini, Anda telah mempelajari cara menggunakan SQL*Loader untuk memuat data dari flat-file ke dalam tabel di database.