Mengenal ORACLE 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

Transcript of Mengenal ORACLE PL/ SQL

Page 1: Mengenal ORACLE PL/ SQL

1PL/ 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 ORACLE PL/ SQL

2PL/ 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 ORACLE PL/ SQL

3PL/ 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 ORACLE PL/ SQL

4PL/ 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 ORACLE PL/ SQL

5PL/ 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 ORACLE PL/ SQL

6PL/ 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 ORACLE PL/ SQL

7PL/ 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

BEFORE DELETE Diaktifkan sekali sebelum statemen DELETE

Page 8: Mengenal ORACLE PL/ SQL

8PL/ SQL on tifosilinux.wordpress.com

AFTER DELETE Diaktifkan sekali setelah statemen DELETE

Page 9: Mengenal ORACLE PL/ SQL

9PL/ 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 ORACLE PL/ SQL

10PL/ SQL on tifosilinux.wordpress.com

Referensi :

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