Sebelumnya kita sudah membahas sedikit tentang Oracle PL/SQL. Dan Procedure ini adalah salah satu implementasi dari Oracle PL/SQL, sebuah objek yang tertanam pada Database dalam bentuk kode.
Di mana di dalamnya bisa berisi sebuah proses tertentu baik itu pemrosesan data atau pun pemrosesan secara logika.
Procedure adalah sebuah blok PL/SQL yang tersimpan di dalam Oracle Database, sehingga ketika kita membutuhkan procedure ini, kita bisa memanggilnya lagi.
Syntax Procedure
Procedure secara blok terdiri dari 3 bagian utama, yaitu Deklarasi, Executable, dan Exception (blok ini bersifat opsional). Bentuk dari syntax Procedure adalah sebagai berikut:
CREATE [OR REPLACE] PROCEDURE procedure_name
[ (parameter [,parameter]) ]
IS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [procedure_name];
Syntax dimulai dengan keyword CREATE, di mana ini menyatakan perintah untuk meng-CREATE procedure dengan nama tertentu.
Kemudian ada 3 blok utama, yaitu Deklarasi (di syntax di atas ada pada bagian declaration_section), kemudian Executable (di atas pada bagian executable_section, lalu ada Exception (pada bagian exception_section).
Blok Deklarasi, sesuai dengan namanya, menggunakannya untuk mendeklarasikan sebuah variable. Baik itu tipe data tertentu, sebuah cursor, record, atau pun array.
Karena pada PL/SQL harus mendeklarasikan semua variabel, dan deklarasi variabel hanya bisa melakukannya pada blok Deklarasi (tidak bisa di blok Executable atau pun Exception).
Pada Blok Executable berisi semua kode yang dibutuhkan untuk proses pada procedure tersebut, di sini bisa dilakukan berbagai macam kode.
Seperti if..else statement, looping for, looping while loop, call cursor, execute query, bahkan bisa melakukan panggilan kepada blok PL/SQL lainnya (misalnya memanggil procedure lain atau pun memanggil sebuah function).
Lalu yang terakhir ada blok Exception, di mana blok ini sebenarnya bersifat opsional, artinya bisa kita gunakan bisa juga tidak.
Sebuah procedure yang tidak menggunakan blok Exception tetap bisa untuk mengeksekusinya, dan jika di compile pun tidak akan error.
Exception ini berfungsi sebagai menangkap error yang terjadi pada blok Executable. Jadi jika terjadi error pada blok Executable, blok akan menangkap error tersebut dan bisa di analisa lebih lanjut.
Parameter pada Procedure
Procedure dapat menerima 0 atau lebih dari 0 parameter. Artinya bisa saja mendeklarasikan Procedure tanpa menggunakan parameter, atau bisa juga menggunakan 1 atau lebih dari 1 parameter. T
ergantung dari kebutuhan procedure itu sendiri. Parameter ini terdiri dari 3 tipe, yaitu parameter IN, parameter OUT, dan parameter IN OUT.
Parameter IN adalah sebuah parameter yang menerima sebuah inputan.
Jadi misalnya kita memanggil sebuah procedure dengan sebuah parameter yang bertipe IN, maka kita bisa memasukkan sebuah nilai pada parameter ini untuk diterima oleh procedure.
Kebalikan dari parameter IN, parameter bertipe OUT ini hanya bisa memberi keluaran atau output sebuah nilai tertentu yang nantinya si pemanggil procedure terima.
Misalnya sebuah aplikasi ataupun seorang DBA memanggil sebuah procedure yang mempunyai parameter bertipe OUT.
Parameter ini nantinya akan memberikan keluaran nilai tertentu (tentunya jika kode-nya memberikan keluaran kepada parameter tersebut) yang nantinya akan bisa dibaca oleh aplikasi atau DBA yang memanggil procedure tersebut.
Lalu ada tipe IN OUT, parameter bertipe ini berfungsi sebagai penerima input sekaligus pemberi output.
Sehingga parameter yang bertipe seperti ini bisa memberikan input dan bisa mengeluarkan output.
Jika kita tidak mendeklarasikan tipe parameter, maka secara default oracle akan mendeklarasikan parameter tersebut bertipe IN.
Jadi jika anda melihat sebuah deklarasi procedure dan parameternya tidak ada tipenya, bukan berarti parameter tersebut salah, tapi Oracle akan menganggap parameter tersebut bertipe IN.
Untuk contohnya kita akan bahas di artikel selanjutnya ya. Semoga bermanfaat buat teman-teman semua.