Mengelola Data

advertisement
Mengelola Data
Oleh: Arif Basofi
Tujuan
• Memanipulasi data menggunakan SQL
• Menggunakan data Pump untuk mengeluarkan
•
9-2
(export) dan mengambil (import) data
Memanggil data dengan SQL Loader
Memanipulasi data menggunakan SQL
9-3
Perintah INSERT
•
•
9-4
Membuat satu baris dalam satu waktu
Menyisipkan banyak baris dari tabel lain
Perintah UPDATE
Digunakan untuk merubah nol atau lebih baris
dari suatu tabel
9-5
Perintah DELETE
Digunakan untuk menghapus nol atau lebih
baris dalam suatu tabel
9-6
Perintah MERGE
• Digunakan untuk menggabungkan data menjadi satu table,
•
yang mencakup perintah INSERT atau UPDATE dalam satu
perintah.
Penggabungan dilakukan dgn syarat:
–
–
9-7
jika data sesuai maka di-UPDATE, dan
jika data tidak sesuai maka di-INSERT.
Perintah COMMIT dan ROLLBACK
Digunakan untuk menyelesaikan transaksi:
• Commit : Membuat perubahan menjadi permanen
• Rollback : Mengembalikan apa yang telah dirubah
9-8
Integrity Constraints dan DML
9-9
Export Data dengan Data Pump
•
Manfaat Oracle Data Pump: memiliki kecepatan tinggi dalam
mentransfer data dari satu database ke database yang lain.
• Misal: mengekspor sebuah tabel yg terhubung dgn index dari satu
database dan impor tabel ke dalam database lain.
Caranya:
• Pada halaman maintenance klik Export to Files untuk menggunakan
Data Pump menuliskan data ke dalam suatu file.
1. Pada halaman pertama, pilih yang ingin di-ekspor, dan masukkan login.
2. Jika memilih skema / tabel untuk tipe ekspor, halaman selanjutnya akan
diminta memilih sekelompok skema atau tabel yang ingin anda ekspor.
3. Halaman Option adalah langkah selanjutnya, jika anda memilih ekspor
database anda akan menuju halaman ini setelah memilih tipe ekspor.
4. Halaman selanjutnya adalah files. Anda gunakan halaman files untuk
merincikan nama direktori dan nama file.
5. Halaman selanjutnya adalah Schedule, untuk mengekspor pekerjaan.
6. Halaman terakhir adalah Review, untuk menampilkan kode PL/SQL dlm
mengenerate perintah ekspor dgn selection yg dibuat dihalaman sblmnya.
•
9-10
Setelah pekerjaan di submit, klik View Job untuk mengawasi proses
pekerjaan
Export data dengan Data Pump
9-11
Import data dengan Data Pump
•
•
Data Pump Import digunakan untuk memanggil data yg akan diekstrak.
Caranya: pada halaman Maintenance klik Import from Files untuk
menggunakan Data Pump Impor.
1. Files : nama file yg akan di impor pada database server. Selanjutnya pilih
satu dari tiga pilihan impor: mengimpor seluruh file, perinci schema, atau
perinci tabel. Anda juga bisa memilih menghasilkan file log lalu memasukkan
credential dalam field host Username dan Host Password.
2. Select Object : untuk memilih objek khusus yg akan di impor, misal. untuk
memilih user yg ingin di impor dari user–user yg ada di list dan
memindahkannya ke user list yang dipilih.
3. Re-Mapping : untuk menunjukkan apakah mengimpor masing-masing data
user ke dalam skema user yg sama atau skema user yg berbeda sesuai
field Source User dan Destination User.
4. Options : untuk mengatur options penggunaan kembali file data, object
creation error, dan index yang tidak digunakan.
5. Schedule : utk menjadwalkan prosedur impor sbg job di dalam job system.
6. Review : untuk menampilkan kode PL/SQL perintah import yg dibuat.
•
9-12
Setelah pekerjaan disubmit, klik View Job untuk mengawasi proses dari
pekerjaan.
Import data dengan Data Pump
9-13
Objek DIRECTORY
9-14
SQL*Loader
• SQL Loader adalah tool Oracle untuk me-load data dari flat file
•
•
•
(text) ke dalam tabel database Oracle.
Program (executable) SQL Loader adalah sqlldr, lokasi ada di
$ORACLE_HOME/bin.
SQL Loader sering digunakan untuk mengatasi kendala jaringan.
Misalkan perusahaan memiliki kantor cabang yg tidak tersambung
scr online dgn pusat; data transaksi biasanya dikirim ke pusat
dalam bentuk text file; kemudian di pusat, data tsb di-load ke
database menggunakan SQL Loader.
SQL Loader juga sering digunakan untuk me-load data dari system
yang berbeda. Misalkan transaksi yg di-handle oleh database non
Oracle, sementara datawarehouse menggunakan Oracle. Nah, data
transaksi dari non Oracle ini kemudian di-export ke dalam text file,
dan kemudian di-import ke Oracle pakai SQL*Loader.
9-15
SQL*Loader
9-16
SQL*Loader
•
•
SQL*Loader: memanggil data dr file eksternal ke dlm tabel database
oracle.
File – file yang digunakan oleh SQL*Loader antara lain :
• Input Data Files : SQL*Loader membaca data dari satu atau lebih file
(atau OS sama dengan files) dispesifikasikan kedalam file kontrol. Dari
SQL*Loader, data dalam data file diatur sbg record. Format record bisa
di spesifikasikan ke dalam file kontrol dengan parameter INFILE. Jika
tidak ada format record yg dispesifikasikan, secara default adalah
stream format record.
• Control File : file teks yang ditulis dlm bahasa yang dimengerti oleh
SQL*Loader. File kontrol memberitahukan kepada SQL*Loader:
dimana menemukan data, bagaimana untuk parse dan interpretasi
data, dimana untuk menyisipkan data, dll.
• Log File : ketika SQL*Loader memulai eksekusi, akan dibuat file log.
Jika tidak bisa membuat file log maka eksekusi akan dibatalkan. File
log terdiri dari detail ringkasan dari load, termasuk deskripsi dari
beberapa eror yang terjadi selama proses load.
9-17
SQL*Loader
•
•
9-18
Bad Files : Bad file terdiri dari record yang ditolak, baik oleh
SQL*Loader atau database oracle. File data yang ditolak oleh
SQL*Loader ketika format input tidak benar. Setelah record file data
diterima untuk proses SQL*Loader, akan dikirim ke database oracle
untuk proses insert kedalam tabel sebagai baris. Jika database oracle
menyatakan bahwa baris tersebut benar,maka baris tsb akan di
masukkan ke dalam tabel. Jika database oracle menyatakan baris tsb
salah, maka record ditolak dan SQL*Loader meletakkan ke bad file.
Discard file : File ini hanya dibuat ketika dibutuhkan, dan hanya jika
anda mempunyai spesifikasi dari discard file yang seharusnya ada.
Discard file terdiri dari record yang difilter diluar load karena mereka
tidak sesuai dengan kriteria record-selection yang dispesifikasikan
didalam file kontrol.
File kontrol untuk SQL*Loader
File kontrol untuk SQL*Loader berisi:
• Dimana menemukan data yang dipanggil
• Format data
• Detail konfigurasi dari :
•
•
•
Pengelolaan memory
Penolakan record
Penolakan Detail penanganan isi
• Bagaimana memanipulasi data
9-19
Sintak file kontrol
• Sintaknya adalah format bebas
• Sintak tidak case sensitif
• Komentar diberikan dari dua hypens (--) yang ditandai
•
9-20
diawal komentar sampai akhir baris
Kata kunci CONSTANT sudah dipesan Æ tidak boleh
digunakan
Input Data dan Data Files
• SQL*Loader membaca data dari satu atau lebih file
•
•
9-21
yang disebutkan di file kontrol
Dari pandangan SQL*Loader, data dalam data file
dikelola sebagai record
Data file berupa salah satu dari tiga format berikut:
- Format Fixed-record
- Format Variable-record
- Format Stream-record
Metode Loading
9-22
Membandingkan Conventional dan Direct
Path Loads
9-23
Conventional Load
Direct Path Load
Menggunakan COMMIT untuk
membuat perubahan jadi
permanent
Menggunakan penyimpanan data
Entry di Redo Log selalu dibuat
Redo dibuat hanya pada kondisi2
tertentu
Semua constraints di jalankan
Hanya menjalankan constraints
PRIMARY KEY, UNIQUE, dan
NOT NULL
Trigger INSERT di-picu
Trigger INSERT tidak dipicu
Dapat digunakan untuk
memasukkan data pada table
yang dicluster
Tidak dapat digunakan untuk
memasukkan data pada table
yang di cluster
User yang lain dapat membuat
perubahan pada table
User lain tidak dapat membuat
perubahan pada table
Memasukkan data dengan SQL*Loader
9-24
Latihan
• Lakukan operasi DML pada table yang anda buat
•
9-25
sebelumnya
Lakukan operasi export-import data
Latihan SQl*Loader
1. Buat file penjualan.dat spt dibawah:
3286;23-DEC-08;SEMARANG
3287;24-DEC-08;SURABAYA
3288;25-DEC-08;MAKASAR
3289;26-DEC-08;MEDAN
3290;26-DEC-08;MAGELANG TENGAH
2. Load file penjualan.dat tsb ke dalam tabel penjualan:
CREATE TABLE penjualan
( no_invoice NUMBER,
tgl_jual
DATE,
area
varchar2(10));
3. Langkah pertama, buat control file yang berisi parameterparameter untuk SQL Loader. Misal. beri nama penjualan.ctl
load data
APPEND
into table PENJUALAN
fields terminated by ";"
TRAILING NULLCOLS
(no_invoice,tgl_jual,area)
9-26
Latihan SQl*Loader…
4. Load data di penjualan.dat ke tabel PENJUALAN, dgn
perintah berikut:
sqlldr USERID=test/test CONTROL=penjualan.ctl,
DATA=penjualan.dat, LOG=penjualan.log, BAD=penjualan.bad
Parameter untuk sqlldr adalah:
• USERID: user dan password ke database Oracle
• CONTROL: control file yang akan digunakan
• DATA: file (data) yang akan di-load
• LOG: file untuk menyimpan log dari proses loader
• BAD: file untuk menyimpan data yang tidak diproses
5. Lihat log-nya di file penjualan.log. Dan ternyata ada error:
Record 5: Rejected - Error on table PENJUALAN, column AREA.
ORA-12899: value too large for column "TEST"."PENJUALAN"."AREA"
(actual: 15, maximum: 10)
9-27
Latihan SQl*Loader...
6. Record (baris) ke-lima tidak diproses karena lebar kolom
AREA hanya 10 karakter, sementara nilai yang dimasukkan
panjangnya 15 karakter (MAGELANG TENGAH). Record yang
tidak diposes ini ditaruh di file penjualan.bad.
Sekarang coba query ke tabel PENJUALAN, data yang masuk
hanya 4 record.
SQL> select * from penjualan;
NO_INVOICE
---------3286
3287
3288
3289
9-28
TGL_JUAL
--------23-DEC-08
24-DEC-08
25-DEC-08
26-DEC-08
AREA
---------SEMARANG
SURABAYA
MAKASAR
MEDAN
Download