CURSORS Nama kelompok 10 Rizka Annisa 1135010045 Riris Arista 1135010047 Yolanda Yuspitasari 1135010060 Rashyandri A 1135010061
CURSORS Cursors : sejenis variabel untuk menampung lebih dari satu baris data. Dua tipe dari Cursors : Implicit Cursor (tidak dapat dikendalikan oleh programmer) Explicit Cursor (dideklarasikan oleh programmer)
Berikut ini tabel yang memberikan keterangan perbedaan antara Kursor Eksplisit dan Kursor Implisit : Diletakkan pada bagian Deklarasi blok PL/SQL Diletakkan pada bagian Isi dari blok PL/SQL Dapat menampung lebih dari 1 baris record Hanya dapat menampung 1 baris record Menggunakan perintah SELECT <nama_kolom/atribut> FROM <nama_tabel> Menggunakan perintah SELECT <nama_kolom/atribut> INTO <variabel> FROM <nama_tabel>
Membuat Cursor Syntax: select_statement yang dimaksud adalah sebuah query. Jika membutuhkan baris yg spesifik, gunakan klausa ORDER BY di dlm query. CURSOR cursor_name IS select_statement;
Contoh : DECLARE CURSOR emp_cursor IS SELECT employee_id, last_name FROM employees; CURSOR dept_cursor IS SELECT * FROM departments WHERE location_id = 170; BEGIN ...
Membuka Kursor Syntax: Kursor dibuka untuk mengeksekusi query dan mengenali bagian yg aktif. Gunakan atribut kursor untuk test pada hasil setelah mengambil isi kursor. OPEN cursor_name;
Mengambil Isi Kursor Syntax: Untuk mengambil isi kursor dan menampilkan dgn prosedur PUT_LINE gunakan statement FETCH. Mendapatkan kembali value dari baris ke dalam variabel. Tipe data dari variabel harus sama dengan tipe data dari tabel FETCH cursor_name INTO [variable1, variable2, . . .] | record_name];
Menutup Kursor Syntax: Tutup kursor setelah selesai memanipulasinya. Buka kembali kursor, kl diperlukan. Tidak mengambil isi kursor setelah kursor ditutup CLOSE cursor_name;
Implicit Cursor select [daftar kolom] Syntax: into [daftar variabel] from [daftar tabel] where [syarat] contoh: select first_name, last_name, salaryinto nama_depan, nama_belakang, gaji from employees where first_name = ‘Susan’;
contoh: Declare nama_cari employees.first_name%type; nama_depan employees.first_name%type; alamat_email employees.email%type; telepon employees.phone_number%type; Begin nama_cari := '&masukkan_nama'; select first_name, email, phone_number into nama_depan, alamat_email, telepon from employees where first_name = nama_cari; dbms_output.put_line('Nama:'||nama_depan);dbms_output.put_line('Email:'||alamat_email||'@SemogaJaya.co.id'); dbms_output.put_line('Telepon: '||telepon); end; /
Prosentase Rizka Annisa 1135010045 (25%) Riris Arista 1135010047 (25%) Yolanda Yuspitasari 1135010060 (25%) Rashyandri A 1135010061 (25%)
Refrensi http://chlorophilia.wordpress.com/2010/10/21/membuat-cursor-pada-oracle-10g/ http://cisku.com/?p=129
Terima kasih