CURSORRA. Paramita Mayadewi, S.Kom,M.T.
MI2163-Dasar Pemrograman Basisdata
Prodi D3 Manajemen InformatikaFakultas Ilmu Terapan
Universitas Telkom
Tujuan Pembelajaran
• Mampu membedakan penggunaan cursor implisit & cursor eksplisit
• Mampu mendeklarasikan dan mengendalikan cursor eksplisit
• Mampu menggunakan loop sederhana dan loop untuk cursor untuk mengambil data
Pengertian Cursor• 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
• Terdapat dua macam cursor, yaitu: – cursor implisit dan– cursor eksplisit
Cursor Implisit• Cursor implisit dalam PL/SQL TIDAK
PERLU dideklarasikan sebelumnya. • Cursor implisit menggunakan perintah
SELECT dengan klausa INTO dalam blok perintah PL/SQL dan HANYA dapat menghasilkan satu baris record saja.
• Oracle akan memunculkan pesan kesalahan jika hasilnya lebih dari satu baris.
Cursor Implisit• Atribut dalam cursor implisit:– SQL%NOTFOUND jika baris tidak
ditemukan– SQL%FOUND jika baris ditemukan– SQL%ISOPEN mengembalikan nilai
TRUE jika cursor dalam keadaan terbuka– SQL%ROWCOUNT mengembalikan
jumlah baris yang telah diambil.
Contoh Cursor Implisit• Skema yang digunakan dalam contoh ini adalah skema HR dari Oracle.• Menampilkan last name dan salary pegawai berdasarkan masukan
employee id.
Contoh penggunaan SQL%FOUND dan SQL%ROWCOUNT• Menampilkan last name dan salary berdasarkan masukan employee id
dengan menggunakan perintah SQL%FOUND dan SQL%ROWCOUNT
Cursor Eksplisit• Berbeda dengan cursor implisit yang hanya dapat
mengembalikan 1 baris record saja, cursor eksplisit digunakan jika query yang dilakukan menghasilkan output lebih dari 1 dari record.
• Terdapat 4 atribut dalam cursor eksplisit:– %NOTFOUND jika baris tidak ditemukan– %FOUND jika baris ditemukan– %ISOPEN mengembalikan nilai TRUE jika cursor dalam
keadaan terbuka– %ROWCOUNT mengembalikan jumlah baris yang telah
diambil.
Cursor Eksplisit• Aturan dalam penggunaan cursor eksplisit:
– Deklarasikan cursor terlebih dahulu dalam blok DECLARE• Sintaks yang digunakan:
CURSOR <namaCursor> IS <statemen SELECT>;
– Buka cursor dalam blok perintah (BEGIN…..END;)• Sintaks yang digunakan:
OPEN <namaCursor>;
– Proses data menggunakan statemen FETCH• Sintaks yang digunakan:
FETCH <namaCursor> INTO <namaVariabel>;
– Tutup cursor• Sintaks yang digunakan:
CLOSE <namaCursor>;
Contoh Cursor Eksplisit• Contoh penggunaan cursor eksplisit untuk menampilkan data
employee berdasarkan masukan salary dengan menggunakan blok pengulangan LOOP…….EXIT….END LOOP
Referensi• Feuerstein, Steven, and Bill Pribyl. Oracle PL/SQL
Programming, 5th Edition. Sebastopol: O'Reilly Media, 2009.
• Srivastava, Tulika, and Sunitha Patel. Oracle Database 10g: PL/SQL Fundamental 2nd Edition. Boston: Oracle Publisher, 2006.
• Urman, Scott, Ron Hardman, and Michael Laughlin. Oracle Database 10g PL/SQL Programming. Boston: McGraw-Hill, 2004.
Question ??
Top Related