Mengenal PL SQL

10
1 PL/ SQL on tifosilinux.wordpress.com Mengenal PL/ SQL Saya tidak bisa menemukan fitur ini di dalam MySQL (bisa dibaca: Maisikwel) atau sebenarnya ada tapi saya belum memahaminya atau apa. Jika menemukan sebuah case yang rumit, kebanyakan saya gunakan saja nested query, indexing, Commit (biasanya setting autocommit yang tidak ke zero atau nol dapat diberlakukan guna memastikan setiap perubahan transaksi yang terjadi adalah lengkap adanya) guna mencapai optimisasi. Penjelasan sedikit: Saat setelah proses inserting data kedua pada table customer, kita melakukkan ‘commit;’ pada transaksi yang artinya sistem menerima segala perubahan berupa masukkan data ke table customer. Setelah itu

description

Catatan kecil perihal SQL/ Procedural Language

Transcript of Mengenal PL SQL

Page 1: Mengenal PL SQL

1 PL/ SQL on tifosilinux.wordpress.com

Mengenal PL/ SQL

Saya tidak bisa menemukan fitur ini di dalam MySQL (bisa dibaca: Maisikwel) atau sebenarnya ada tapi

saya belum memahaminya atau apa. Jika menemukan sebuah case yang rumit, kebanyakan saya

gunakan saja nested query, indexing, Commit (biasanya setting autocommit yang tidak ke zero atau nol

dapat diberlakukan guna memastikan setiap perubahan transaksi yang terjadi adalah lengkap adanya)

guna mencapai optimisasi.

Penjelasan sedikit:

Saat setelah proses inserting data kedua pada table customer, kita melakukkan ‘commit;’ pada transaksi

yang artinya sistem menerima segala perubahan berupa masukkan data ke table customer. Setelah itu

Page 2: Mengenal PL SQL

2 PL/ SQL on tifosilinux.wordpress.com

kita coba set autocommit ke nilai nol guna mematikan kegiatan perubahan pada transaksi didalam table

setelah data kedua masuk. Jadi, ketika kita melakukan rollback pada data ketiga dst, akan

mengembalikan data dimana saat terakhir data di ‘commit;’.

Tapi sekarang saya menemukan ini lagi di ORACLE. Tidak mengapa saya menggunakan WINDOWS 7

dibandingkan Linux karena kenyataannya hal ini hanya untuk menambah referensi saya, tidak untuk

di’bisniskan. Biasanya untuk skala coporate yang berbasiskan Linux menggunakan MySQL baik itu

MariaDB, MongoDB, ataupun postgreSQL sebagai basis data nya. Tidak masalah, karena bisa di convert

menggunakan aplikasi dari ORACLE dimana support nya sudah banyak sekali (tidak saya rinci disini).

Meskipun ada beberapa *TRIAL_COLUMN yang muncul saat selesai konversi, namun saya yakin pasti

ada setting yang saya lewatkan. (Sebagai catatan saat proses konversi MySQL ke ORACLE, masukkan SID

nya melalui parameter yang dijalankan pada screen capture berikut)

Page 3: Mengenal PL SQL

3 PL/ SQL on tifosilinux.wordpress.com

Baik, agar tidak lebih out of topic, langsung saja saya coba sedikit paparkan.

PL/ SQL atau Procedural Language to Structured Query Language adalah sebuah teknologi dari ORACLE

(lagi2 ORACLE, ingin sekali bekerja di perusahaan ini) yang memperbolehkan kita melakukan

pemrograman layaknya C, FORTRAN, COBOL dan lainnya. Konsepnya seperti ini :

PL/ SQL dapat mengirimkan beberapa/ sekumpulan statemen sekaligus ke dalam basis data, tentunya ini

berguna mereduksi waktu perjalanan data. Blok PL/ SQL sendiri memiliki bagian seperti berikut:

Page 4: Mengenal PL SQL

4 PL/ SQL on tifosilinux.wordpress.com

DECLARE

- Berisi deklarasi variable, konstanta, prosedur, atau fungsi

BEGIN

- Statemen yang akan di eksekusi

EXCEPTION

- Berisi perintah untuk mengatasi error yang mungkin terjadi

END

Oke, untuk pertama kali menggunakan SQL Command Line, kita harus connect terlebih dahulu ke system

dan melakukan setting output ke server, silahkan melihat gambar berikut:

Kondisi Percabangan dengan IF, kondisi ‘if’ biasanya identik dengan percabangan, kurang bisa disebut

sebagai kondisi pilihan karena jika ada kondisi yang tidak tepat, akan di arahkan ke cabang yang lebih

tepat, sedangakan statement itu sendiri sejatinya tidak dapat memilih. Semoga anda tidak bingung

dengan kalimat saya. Berikut sampel kondisi percabangan dan looping menggunakan ‘for’ yang coba

saya tampilkan:

Page 5: Mengenal PL SQL

5 PL/ SQL on tifosilinux.wordpress.com

Pembuatan Prosedur dan Fungsi, didalam PL/ SQL dapat dibuat sebuah blok yang dapat berdiri sendiri

dan disimpan sebagai sebuah objek di dalam basis data untuk melakukan sebuah tugas tertentu. Hal ini

membuat kode yang kita buat lebih bersifat modular sehingga mudah kita maintain. Saya coba

tampilkan kembali (Masih menggunakan data sebelumnya):

Page 6: Mengenal PL SQL

6 PL/ SQL on tifosilinux.wordpress.com

Kita buat prosedur diatas dengan nama cari_passenger dan cukup memanggilnya dengan parameter

‘exec’. Menarik bukan ??, untuk penjelasan apa manfaat dari sintaks ‘%TYPE’ akan kita bahas lain kali

pada kategori cursor di PL/ SQL.

Bagian ‘fungsi ini membuat kita ‘makin membuka mata untuk program modular di PL/ SQL dimana kita

dapat masukkan fungsi yang telah dibuat ke blok BEGIN (tempat statemen yang akan di eksekusi).

Perbedaannya adalah cara pemanggilan fungsi yang tidak sama dengan prosedur. Lihat tampilan berikut:

Page 7: Mengenal PL SQL

7 PL/ SQL on tifosilinux.wordpress.com

Trigger, adalah blok PL/ SQL yang disimpan dalam basis data dan akan diaktifasi saat kita melakukkan

statemen-statemen dalam SQL seperti DELETE, UPDATE, atau INSERT (DML/ Data Manipulation

Language) namun memiliki batasan dalam CREATE, ALTER, atau DROP (DDL/ Data Definition Language)

serta terbatas juga didalam COMMIT, GRANT, ROLLBACK dll (DCL/ Data Control Language). Saya

menyebut Trigger ini sebuah ‘pemicu’.

Trigger benar-benar berguna bagi kita yang sedang membuat aplikasi yang membutuhkan validasi dalam

prosesnya. Ada beberapa daftar event yang harus diperhatikan dalam penggunaan trigger:

Nama Event Keterangan

BEFORE INSERT Diaktifkan sekali sebelum statemen INSERT

AFTER INSERT Diaktifkan sekali setelah statemen INSERT

BEFORE UPDATE Diaktifkan sekali sebelum statemen UPDATE

AFTER UPDATE Diaktifkan sekali setelah statemen UPDATE

Page 8: Mengenal PL SQL

8 PL/ SQL on tifosilinux.wordpress.com

BEFORE DELETE Diaktifkan sekali sebelum statemen DELETE

AFTER DELETE Diaktifkan sekali setelah statemen DELETE

Page 9: Mengenal PL SQL

9 PL/ SQL on tifosilinux.wordpress.com

Diakui masih banyak yang harus dijelaskan perihal fungsi sintaks ‘%TYPE’ didalam cursor dan ‘:new’

didalam record, InsyaAllah akan saya update artikel ini.

Regards

Hary

Page 10: Mengenal PL SQL

10 PL/ SQL on tifosilinux.wordpress.com

Referensi :

Raharjo Budi, Heryanto Imam, Menguasai ORACLE SQL dan PL/ SQL, Informatika, 2009.