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
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)
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:
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:
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):
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:
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
8PL/ SQL on tifosilinux.wordpress.com
AFTER DELETE Diaktifkan sekali setelah statemen DELETE
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
10PL/ SQL on tifosilinux.wordpress.com
Referensi :
Raharjo Budi, Heryanto Imam, Menguasai ORACLE SQL dan PL/ SQL, Informatika, 2009.

Mengenal ORACLE PL/ SQL

  • 1.
    1PL/ SQL ontifosilinux.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
  • 2.
    2PL/ SQL ontifosilinux.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)
  • 3.
    3PL/ SQL ontifosilinux.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:
  • 4.
    4PL/ SQL ontifosilinux.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:
  • 5.
    5PL/ SQL ontifosilinux.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):
  • 6.
    6PL/ SQL ontifosilinux.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:
  • 7.
    7PL/ SQL ontifosilinux.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
  • 8.
    8PL/ SQL ontifosilinux.wordpress.com AFTER DELETE Diaktifkan sekali setelah statemen DELETE
  • 9.
    9PL/ SQL ontifosilinux.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
  • 10.
    10PL/ SQL ontifosilinux.wordpress.com Referensi : Raharjo Budi, Heryanto Imam, Menguasai ORACLE SQL dan PL/ SQL, Informatika, 2009.