Pada kesempatan kali ini kita akan belajar bersama - sama mengenai Function & Cursor didalam oracle
database, serta penulisan syntax-nya.
Langsung saja yuk, perlu diketahui terlebih dahulu kalau didalam PL / SQL (Procedural Language /
Structural Query Language) terdapat beberapa modul, salah satunya yang akan kita pelajari kali ini, yap
betul sekali, Modul function dan cursor.
Sebelumnya apa sih yang dimaksud dengan Function, dan apa yang dimaksud dengan Cursor? Yuk cari
tahu bersama - sama.
A. Function
Function atau lebih sering disebut Stored Function merupakan salah satu modul dari PL / SQL yang dapat
mempermudah melakukan pengolahan suatu nilai dan mengembalikan nilai tertentu. Jika kalian sudah
mempelajari Algoritma Pemograman maka Function ini tidak jauh berbeda dengan Fungsi yang ada di
Algoritma Pemograman, yang berbeda hanya struktural syntax-nya saja.
Sekarang mari kita belajar membuat function, tetapi telebih dahulu kita buat database user baru dengan
nama function seperti berikut:
Lalu kita membuat tabel baru dalam database user function dengan nama tabel latihan_function:
Setelah itu, kita akan membuat function yang akan mengambil nilai terbesar dari tabel latihan_function
tadi, bagaimana function nya? Seperti inilah functionnya:
Dalam function tersebut, terdapat variabel baru (nilai_maksimum) yang berguna untuk menampung
nilai keluaran dari function yang kita buat, yaitu nilai terbesar dari tabel latihan_function.
Untuk mengetahui function yang kita buat berjalan atau tidak, kita bisa melakukan eksekusi terhadap
function yang kita buat tadi, dengan cara:
B. Cursor
Cursor berfungsi untuk menangkap / mengambil banyak data yang banyaknya telah ditentukan sesuai
kebutuhan.
Cursor digunakan dalam script PL/SQL untuk menampilkan data yang tersimpan di dalam database.
Berikut merupakan macam - macam cara penulisan cursor sesuai dengan penggunaan:
Catatan:
Cursor_1 bertipe data refcursor dan dapat digunakan untuk semua query.
Cursor_3 adalah cursor yang memiliki query dan sekaligus parameter. Key akan digantikan dengan nilai
bertipe integer saat cursor di buka / dieksekusi.
Membuka Cursor
Menggunakan Cursor
Setelah cursor dibuka, nilainya dapat dimanipulasi dengan perintah yang diekspresikan sebagai berikut:
Untuk cursor - cursor yang tadi diatas, perintah untuk menggunakannya adalah:
Jika cursor_1 tersebut memiliki lebih dari satu kolom, dapat menggunakan cara ini:
Setelah digunakan sebaiknya cursor ditutup untuk menghemat memory yang digunakan.
Ada dua macam cursor yaitu implicit cursor (kursor implisit) dan explicit cursor (kursor eksplisit).
1. Implicit Cursor
Implicit Cursor merupakan cursor yang tidak perlu dideklarasikan pada bagian declaration.
Contoh :
2. Explicit Cursor
Explicit cursor merupakan cursor yang harus dideklarasikan pada bagian declare.
Contoh :
Explicit cursor harus melalui empat tahap yaitu declare, open, fetch dan close. Berikut ini
adalah penjelasannya:
1. Pada tahap declare, cursor dideklarasikan pada blok PL/SQL. Cursor perlu
dideklarasikan karena sifat cursor yang menyerupai variable (dapat dipanggil dalam blok
utama program) namun deklarasi untuk cursordiletakkan setelah deklarasi variable lain,
2. Pada tahap open, cursor dibuka (query dalam cursor dieksekusi dan hasilnya
3. Pada tahap fetch, satu baris data dalam cursor diambil dan ditransfer ke
variable penampung yang ada pada klausa into. Karena jumlah baris data kemungkinan
lebih dari satu maka biasanya fetch diletakkan dalam looping yang akan berhenti begitu
4. Pada tahap close, cursor ditutup dan hasil query dalam cursor dihapus dari memory.
Untuk mengakses cursor ada beberapa kaidah yang perlu diketahui, yaitu :
1. Membuka Cursor
Atau
3. Menutup cursor
Jawab :
1. Buat Tabel
Tabel Mahasiswa
Tabel Kunci
Tabel Jawaban
Tabel Skor
2. Buat Function
3. Buat Procedure
4. Eksekusi Prosedur dan lihat di table skor. JIka di tabel skor ada datanya, maka query diatas
tidak error.