Minggu, 20 Maret 2016

Cursor pada Database




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. Cursor sangat bermanfaat jika ada suatu proses yang rumit yang ingin dilakukan terhadap suatu record.
Terdapat 2 jenis cursor di PL/SQL, yaitu Cursor Eksplisit dan Implisit.
A)    Cursor Implisit
Cursor implisit adalah perintah select statement dengan ditambahkan klausa INTO yang terdapat di dalam blok PL/SQL dan harus menghasilkan satu baris record.
B)    Cursor Eksplisit
Cursor eksplisit adalah suatu perintah select yang harus di deklarasikan terlebih dahulu, biasanya dengan menggunakan cursor eksplisit bisa menampilkan record lebih dari 1 dengan melakukan looping pada blok PL/SQL,

2.      Buatlah prosedur sederhana yang menggunakan cursor!
Jawab :
Procedure atau prosedur adalah program yang disimpan dalam database seperti halnya data. Berikut dibawah ini merupakan contoh prosedur sederhana yang menggunakan cursor.


Text Box: CREATE PROCEDURE [dbo].[sp_laporanglobal2]
AS
BEGIN
      SET NOCOUNT ON;
      CREATE TABLE #laporanglobal
      (
            Nmr INT IDENTITY(1,1),
            no_urut INT,
            ProductName VARCHAR(50),
            UnitPrice MONEY
      )
      DECLARE @categoryID INT
      DECLARE myCursor CURSOR
      FOR SELECT CategoryID FROM Categories
      OPEN myCursor
      FETCH NEXT FROM myCursor
      INTO @categoryID
      WHILE @@FETCH_STATUS = 0
      BEGIN
            INSERT INTO #laporanglobal (no_urut, ProductName, UnitPrice) EXEC sp_laporan @CategoryID
            FETCH NEXT FROM myCursor
            INTO @categoryID
      END
 
      SELECT * FROM #laporanglobal
      DROP TABLE #laporanglobal
END


3.      Buatlah trigger sederhana untuk memanipulasi data dalam tabel!
Jawab :
Trigger digunakan untuk menjalankan suatu perintah pada SQL yang terjadi pada saat kita sebelum atau sesudah melakukan insert, update dan delete.
Contoh Trigger sederhana :
Text Box: DELIMITER $$
DROP TRIGGER IF EXISTS 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;$$
DELIMITER ;





DAFTAR PUSTAKA
http://database-alkaizer.blogspot.co.id/2011/01/cursor.html (diakses tanggal 21 Maret 2016)
http://dianayun30207013.blogspot.co.id/2011/01/cursor.html (diakses tanggal 21 Maret 2016)
http://sauri-sofyan.blogspot.co.id/2010/03/mysqlpengertian-procedure.html (diakses tanggal 21 Maret 2016)
http://pojokprogrammer.net/content/iterasi-pada-record-data-dengan-menggunakan-loop-dan-cursor-pada-stored-procedure (diakses tanggal 21 Maret 2016)
https://viepiinq12.wordpress.com/2014/04/19/trigger-dan-query-dalam-database-mysql/ (diakses tanggal 21 Maret 2016)


Download : disini
Share:

0 komentar:

Posting Komentar