JSON Variables

Selasa, 28 Juni 2022

CARA MENGGUNAKAN SQL LOADER ORACLE DENGAN BAT FILE

 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:

Oracle 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.

Siapkan file input

Berikut isi dari  email.dat file tersebut:

1,john.doe@example.com 2,jane.doe@example.com 3,peter.doe@example.com
Bahasa kode: CSS ( css )

Isi dari file kontrol ( email.ctl) adalah sebagai berikut:

load data into table emails insert fields terminated by "," ( email_id, email )
Bahasa kode: JavaScript ( javascript )

Dalam file kontrol:

  • Perintah load data into table emails insertSQL*Loader untuk memuat data ke dalam tabel email menggunakan pernyataan INSERT.
  • Menentukan fields terminated by "," (email_id,email)bahwa setiap baris dalam file memiliki dua kolom email_iddan emaildipisahkan oleh koma (,).

Berikut adalah isi dari file parameter ( email.par):

userid=ot@pdborc/Abcd1234 control=email.ctl log=email.log bad=email.bad data=email.dat direct=true
Bahasa kode: JavaScript ( javascript )

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:

Unduh file data, kontrol, dan parameter

Muat data dari file datar ke dalam tabel

Pertama, buat tabel baru untuk menyimpan data email dari input datafile:

CREATE TABLE emails( email_id NUMBER PRIMARY KEY, email VARCHAR2(150) NOT NULL );
Bahasa kode: SQL (Structured Query Language) ( sql )

Kedua, luncurkan program SQL*Loader dari direktori tempat Anda menyimpan file menggunakan sqlldrperintah:

C:\loader> sqlldr parfile=dept_loader.par
Bahasa kode: SQL (Structured Query Language) ( sql )

Berikut adalah outputnya:

Path used: Direct Load completed - logical record count 3. Table EMAILS: 3 Rows successfully loaded. Check the log file: email.log for more information about the load.
Bahasa kode: CSS ( css )

Ketiga, masuk ke Oracle dan verifikasi isi emailstabel:

SELECT * FROM emails;
Bahasa kode: SQL (Structured Query Language) ( sql )

Berikut adalah hasil yang ditetapkan:

Contoh Pemuat SQL*

Terakhir, tinjau file log:

SQL*Loader: Release 12.1.0.2.0 - Production on Tue Jul 23 08:04:46 2019 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: 50 Continuation: none specified Path used: Direct Table EMAILS, loaded from every logical record. Insert option in effect for this 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 with 3 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 23 08:04:46 2019 Run ended on Tue Jul 23 08:04:48 2019 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.

0 komentar:

Posting Komentar