1.
Jelaskan
apakah itu cursor dan digunakan untuk apa!
Jawab
:
Cursor
merupakan suatu variabel yang digunakan untuk menampung hasil query yang
terdiri atas lebih dari satu row atau record. Cursor dapat diilustrasikan
sebagai penampung sekaligus pointer atas hasil eksekusi query. Pada dasarnya
perintah “SELECT” pada PL/SQL merupakan sebuah cursor.
Cursor
digunakan untuk
menampung data dari hasil query dan digunakan untuk membuat program yang
menggunakan perulangan atau looping, dimana jika digunakan pada program kecil,
maka program tersebut menjadi praktis dan mudah dipahami.
2.
Buatlah prosedur sederhana yang
menggunakan cursor!
Jawab :
Buatlah
satu tabel misalkan dengan nama tabel DVD dengan 3 field (Kode, Nama_DVD dan
Jumlah).
CREATE TABLE [DVD] (
[Kode][varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
[Nama_DVD] [varchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS
NULL
[Jumlah] [int] NULL
CONSTRAINT [PK_DVD] PRIMARY KEY CLUSTERED
(
[Kode]
) ON [PRIMARY]
) ON [PRIMARY]
GO
Masukkan data
ke dalam tabel yang dibuat seperti dibawah ini.
INSERT into DVD (Kode, Nama_DVD, Jumlah) values (001, ‘Batman vs Superman’, 1)
INSERT into DVD (Kode, Nama_DVD, Jumlah) values (002, ‘Civil War’, 1)
INSERT into DVD (Kode, Nama_DVD, Jumlah) values (001, ‘Now You See Me 2’, 1)
Berikut
tahapan-tahapan menggunakan Fetch dan Cursor, antara lain :
a.
Declare
Mendeklarasikan
nama cursor dan menggunakan struktur query select.
DECLARE
[nama_cursor] CURSOR FOR [Query]
Contoh :
DECLARE DVD-cursor CURSOR FOR
SELECT Kode, Nama_DVD, Jumlah FROM DVD
WHERE Nama_DVD
ORDER BY Kode, Nama_DVD
b.
Open
Setelah
melakukan deklarasi, cursor harus dibuka terlebih dahulu.
OPEN DVD_cursor
Contoh :
OPEN DVD_cursor
c.
Fetch
Merupakan
perintah untuk mengambil isi cursor yaitu hasil query pada saat cursor
dideklarasikan yang selanjutnya ditampung ke dalam variabel.
FETCH
[nama_cursor] INTO [variabel1, variabel2, ....]
Contoh :
FETCH NEXT FROM DVD_cursor
INTO @Kode, @Nama_DVD, @Jumlah
d.
Close dan Deallocate
Close adalah
perintah untuk menutup cursor, sementara deallocate adalah perintah untuk
melepaskan cursor.
CLOSE
[nama_cursor]
DEALLOCATE
[nama_cursor]
Contoh :
CLOSE DVD_cursor
DEALLOCATE DVD_cursor
3.
Buatlah
trigger sederhana untuk memanipulasi data dalam tabel!
Trigger
adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view, skema
atau database yang dijalankan secara implicit pada saat terjadi sebuah event.
Trigger ini adalah store procedure yang dijalankan secara otomatis saat user
melakukan modifikasi data pada tabel. Berikut sintaks trigger :
CREATE TRIGGER
nama_trigger [BEFORE/AFTER]
[INSERT/UPDATE/DELETE]
ON nama_tabel
FOR EACH ROW
BEGIN
//memasukkan
beberapa perintah SQL
END;
Contoh :
Menghitung
rating berdasarkan panjang nama dengan formula rating=panjang_nama*2
DELIMETER
DROP TRIGGER IF EXIST trigger_insert_master;
CREATE TRIGGER trigger_insert_master
BEFORE INSERT ON table_master
FOR EACH ROW
BEGIN
SET NEW.rating=LENGTH(NEW.nama)*2;
END;
Download > download
0 komentar:
Posting Komentar
Pengunjung yang baik adalah pengunjung yang meninggalkan komentar teman :)