Cursor MI2163 Dasar Pemrograman Basis Data. Introduction Cursor merupakan suatu variabel yang digunakan untuk menampung hasil query yang terdiri atas.

Slides:



Advertisements
Presentasi serupa
Error Handling (Exception) & INDEX
Advertisements

Database Create-Retrieve-Update-Delete (CRUD)
SQL: Queries II, Constraints & Triggers (Chap. 5 – Ramakrishnan)
PRAKTIKUM BASIS DATA (4) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
TRIGGER.
SQL Part 3 Latar Belakang Desain Tabel Normalisasi Aljabar relasional
Stored Procedure Basis Data 2.
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
Database Process By Masmur Tarigan, ST
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
SQL 2. Database TRANSACTION Tabel yang terlibat : Customer berisi data pelanggan (nama, alamat, dll) OderInfo berisi info pemesanan oleh pelanggan (tgl.
STORED PROCEDURE Achmad Yasid, SKom.
Dikompilasi Oleh : Ary Bima Kurniawan ST., MT.
TRIGGER.
Computer Science, University of Brawijaya Putra Pandu Adikara, S.Kom Cursor Basis Data 2.
Data Definition Language dan Data Manipulation Language
REPETITION CONTROL STRUCTURES
CURSORS Nama kelompok 10 Rizka Annisa
Triggers & Stored Procedure The main reference of this presentation is from book: Peter Rob, Carlos Coronel, “Database systems: Design, Implementation.
Tabled Value Parameter. Tabled Value Parameter merupakan tipe data yang dibuat oleh user Tabled Value Parameter digunakan untuk mengirimkan multiple rows.
SQL (Structure Query Language)
SQL-Aggregate dengan Fungsi GROUP, HAVING dan subQuery
Dikompilasi Oleh : Ary Bima Kurniawan ST., MT.
CURSOR Siti Mukaromah, S.Kom 1. D EFINISI Cursor adalah nama untuk sebuah area SQL dimana informasi untuk pemrosesan pernyataan SQL yang sifatnya spesifik.
PRAKTIKUM BASIS DATA (4) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
SQL (Structure Query Language) Pertemuan 3 – RESTRICTING AND SORTING DATA sy urf gm ail. co m.
SQL-Pembatas dan Pengurutan Data
OPERATOR DAN FUNGSI MATEMATIK. Operator  Assignment operator Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti oleh tanda.
Dasar query basis data dengan SQLite
While … do … Repeat … until … For … to … do …
HANDLING EXCEPTIONS.
Disampaikan Oleh : Wiratmoko Yuwono
C U R S O R.
Exception Handling: Non Predefined Exception
Stored Procedure Dengan Parameter
Stored Function Tanpa Parameter
TRIGGER (Statement & Row Trigger)
PENJURUSAN DI ORACLE ORACLE DEVELOPER
SQL (Structure Query Language)
DEKLARASI VARIABEL DALAM PL/SQL
STORED PROCEDURE & TRIGGER
Operasi Relasional Basis Data
SQL (Structure Query Language)
View dan Trigger Materi 5
Menggunakan Subquery untuk Memecahkan Query Query
Using Subqueries to Solve Queries
Konsep pemrograman LOOP
Pengolahan Informasi Berbasis Bahasa Pemrograman Script
Teknik Pemrograman Terstruktur1
TRIGGER.
SQL OVERVIEW.
Blok PL/SQL Non Modular dan Modular
Anonymous Blok PL/SQL dan Tipe Data
Stored Procedure Tanpa Parameter
PERULANGAN.
Stored Function Dengan Parameter
BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS
Structured Query Language (SQL)
Dikompilasi Oleh : Ary Bima Kurniawan ST., MT.
PROCEDURE, FUCTION, ARRAY
CURSOR.
PRAKTIKUM BASIS DATA (6) TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA
CURSOR.
PERCABANGAN IF Minggu 02.
Structured Query Language (SQL)
Algoritma & Pemrograman 1 Achmad Fitro The Power of PowerPoint – thepopp.com Chapter 4.
ORACLE PL/SQL TRIGGER Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
PL/SQL Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
PL/SQL CURSOR Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.
CURSOR.
Transcript presentasi:

Cursor MI2163 Dasar Pemrograman Basis Data

Introduction 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. Terdapat dua macam cursor, yaitu: cursor implisit dan cursor eksplisit

Cursor Implisit Merupakan perintah SELECT statement dengan klausa INTO yang terdapat di dalam blok PL/SQL dan harus menghasilkan satu baris record. Jika hasil cursor implisit ini lebih dari satu baris atau tidak menghasilkan satu baris pun, maka Oracle akan mengeluarkan pesan kesalahan. Klausa into pada cursor implisit dipakai untuk menugaskan nilai hasil proses select ke dalam variabel-variabel yang dipilih.

Cursor Implisit(2) AtributKeterangan SQL%FOUND TRUE jika cursor menghasilkan sebuah baris dari queri yang dideklarasikan. Sebaliknya FALSE. SQL%NOTFOUNDKebalikan dari SQL%FOUND

Example of Cursor Implisit declare mhs_rec mahasiswa%rowtype; nim_nya mahasiswa.nim%type; begin nim_nya := ' '; select nim, nama, alamat into mhs_rec from nahasiswa where nim = nim_nya;... end;

Example of Cursor Implisit (2) declare vnim mahasiswa.nim%type:='&nim_mhs'; vnama mahasiswa.nama%type; begin select nim,nama into vnim,vnama from mahasiswa where nim =vnim; dbms_output.put_line('Nim: '||vnim); dbms_output.put_line('Nama mahasiswa: '||vnama); end; /

Example of Cursor Implisit (3) declare vnim mahasiswa.nim%type:='&nim_mhs'; vnama mahasiswa.nama%type; begin select nim,nama into vnim,vnama from mahasiswa where nim =vnim; dbms_output.put_line('Data Mahasiswa'); if sql%found then dbms_output.put_line('Nim: '||vnim); dbms_output.put_line('Nama: '||vnama); end if; end; /

Example of Cursor Implisit (4) declare vnama mahasiswa.nama%type :='&nama_mhs'; --masukkan paijo misal ada 2 mahasiswa dengan nama depan paijo begin update mahasiswa set alamat='SKB' where nama like vnama||'%'; if sql%found then dbms_output.put_line('Mahasiswa dengan nama depan '||vnama||' telah di update'); dbms_output.put_line('Tidak ada mahasiswa dengan nama depan : '||vnama); end if; end; /

Practice Buatlah blok PL/SQL dengan menggunakan kursor implisit dan kursor eksplisit untuk menghasilkan output: Employee_idNameSalary 100Steven King24000 …

2. Create a PL/SQL block that does the following: a.Use the substitution variable p_deptno to provide the department ID. b. In the declarative section, declare a variable deptno of type NUMBER and assign the value of p_deptno. c. Declare a cursor, emp_cursor, that retrieves the last_name, salary, and manager_id of the employees working in the department specified in deptno. d. In the executable section use the cursor FOR loop to operate on the data retrieved. If the salary of the employee is less than 5000 and if the manager ID is either 101 or 124, display the message > Due for a raise. Otherwise, display the message > Not due for a raise. e. Test the PL/SQL block for the following cases:

Output:

3. Write a PL/SQL block, which declares and uses cursors with parameters. In a loop, use a cursor to retrieve the department number and the department name from the departments table for a department whose department_id is less than 100. Pass the department number to another cursor as a parameter to retrieve from the employees table the details of employee last name, job, hire date, and salary of those employees whose employee_id is less than 120 and who work in that department. a. In the declarative section declare a cursor dept_cursor to retrieve department_id, department_name for those departments with department_id less than 100. Order by department_id. b. Declare another cursor emp_cursor that takes the department number as parameter and retrieves last_name, job_id, hire_date, and salary of those employees with employee_id of less than 120 and who work in that department. c. Declare variables to hold the values retrieved from each cursor. Use the %TYPE attribute while declaring variables. d. Open the dept_cursor, use a simple loop and fetch values into the variables declared. Display the department number and department name. e. For each department, open the emp_cursor by passing the current department number as a parameter. Start another loop and fetch the values of emp_cursor into variables and print all the details retrieved from the employees table. Note: You may want to print a line after you have displayed the details of each department. Use appropriate attributes for the exit condition. Also check if a cursor is already open before opening the cursor. f. Close all the loops and cursors, and end the executable section. Execute the script.

The sample output is shown below:

Referensi Oracle. Oracle Database 10g: PL/SQL Fundamentals. Oracle, 2004.