Pt8 - Cursor
description
Transcript of Pt8 - Cursor
![Page 1: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/1.jpg)
CURSORRA. Paramita Mayadewi, S.Kom,M.T.
MI2163-Dasar Pemrograman Basisdata
Prodi D3 Manajemen InformatikaFakultas Ilmu Terapan
Universitas Telkom
![Page 2: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/2.jpg)
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
![Page 3: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/3.jpg)
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
![Page 4: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/4.jpg)
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.
![Page 5: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/5.jpg)
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.
![Page 6: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/6.jpg)
Contoh Cursor Implisit• Skema yang digunakan dalam contoh ini adalah skema HR dari Oracle.• Menampilkan last name dan salary pegawai berdasarkan masukan
employee id.
![Page 7: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/7.jpg)
Contoh penggunaan SQL%FOUND dan SQL%ROWCOUNT• Menampilkan last name dan salary berdasarkan masukan employee id
dengan menggunakan perintah SQL%FOUND dan SQL%ROWCOUNT
![Page 8: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/8.jpg)
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.
![Page 9: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/9.jpg)
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>;
![Page 10: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/10.jpg)
Contoh Cursor Eksplisit• Contoh penggunaan cursor eksplisit untuk menampilkan data
employee berdasarkan masukan salary dengan menggunakan blok pengulangan LOOP…….EXIT….END LOOP
![Page 11: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/11.jpg)
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.
![Page 12: Pt8 - Cursor](https://reader035.fdocuments.net/reader035/viewer/2022071710/55cf92bb550346f57b991f83/html5/thumbnails/12.jpg)
Question ??