CURSOR MENGAPA HARUS ADA CURSOR PLSQL TIDAK MENGIJINKAN
- Slides: 25
CURSOR
MENGAPA HARUS ADA CURSOR ? PL/SQL TIDAK MENGIJINKAN MENAMPILKAN BEBERAPA BARIS MENGGUNAKAN PERINTAH SELECT
APAKAH CURSOR ITU ? SEJENIS VARIABEL YANG DIGUNAKAN UNTUK MENAMPUNG BANYAK NILAI BERUPA BARIS ATAU RECORD
PEMBAGIAN CURSOR ØEKSPLISIT : CURSOR YANG DIBUKA DAN DITUTUP SECARA MANUAL Ø ATRIBUT : § %FOUND (BARIS DITEMUKAN) § %NOTFOUND (BARIS TIDAK DITEMUKAN) § %ROWCOUNT (JUMLAH BARIS YANG DIAMBIL OLEH FECTH) § %ISOPEN (BERNILAI TRUE KALAU CURCOR MASIH TERBUKA)
CURSOR EKSPLISIT DECLARE NAMA_VARIABEL TIPE DATA; CURSOR NAMA_CURSOR IS SELECT. . . . . ; OPEN NAMA_CURSOR; FETCH NAMA_CURSOR INTO NAM_VARIABEL; CLOSE NAMA_CURSOR;
CONTOH CURSOR EKSPLISIT (DEKLARASI) set serveroutput on declare vgaji%rowtype; cursor gaji is select last_name, salary, department_id from employees where department_id=50 order by last_name;
CONTOH CURSOR EKSPLISIT (BODY) begin open gaji; loop fetch gaji into vgaji; exit when gaji%notfound; dbms_output. put_line(vgaji. last_name ||‘ '||vgaji. salary||' '||vgaji. department_id); end loop; close gaji; end; /
PEMBAGIAN CURSOR Ø IMPLISIT : CURSOR YANG TIDAK PERLU DIDEKLARASIKAN DAN BERGABUNG DENGAN PERINTAH INSERT, DELETE DAN UPDATE Ø ATRIBUT : § SQL%FOUND (BERNILAI TRUE BILA TIDAK DITEMUKAN) § %NOTFOUND (KEBALIKANNYA) § %ROWCOUNT (MENUNJUKAN BANYAK BARIS YANG DIBERIKAN OLEH QUERY PADA USER) § %ISOPEN (BERNILAI TRUE PADA SAAT EKSEKUSI)
CONTOH CURSOR IMPLISIT (1) set serveroutput on DECLARE baris number(5); BEGIN UPDATE employees SET salary = salary + 1000; IF SQL%NOTFOUND THEN dbms_output. put_line('Tidak ada Gaji berbasil di update');
CONTOH CURSOR IMPLISIT (2) ELSIF SQL%FOUND THEN baris : = SQL%ROWCOUNT; dbms_output. put_line('Gaji ' || baris ||’ Sudah di update'); END IF; end; /
HANDLING EXCEPTIONS
PEMBAGIAN HANDLING EXCEPTIONS • PREDEFINED EXCEPTION : kondisi exception yang sudah didefinisikan dalam oracle • USER DEFINED EXCEPTION : penanganan error yang didefinisikan oleh programmer
CONTOH PREDEFINED EXCEPTION set serveroutput on DECLARE nama VARCHAR 2(15); BEGIN SELECT last_name INTO nama FROM employees WHERE first_name='John’; dbms_output. put_line(‘John is last name is : ‘||nama); End; /
CONTOH PREDEFINED EXCEPTION set serveroutput on DECLARE nama VARCHAR 2(15); BEGIN SELECT last_name INTO nama FROM employees WHERE first_name='John'; dbms_output. put_line('John is last name is : '||nama);
CONTOH PREDEFINED EXCEPTION WHEN TOO_MANY_ROWS THEN dbms_output. put_line('Pernyataan SELECT yang menampilkan banyak baris harus menggunakan cursor'); end; /
CONTOH PREDEFINED EXCEPTION (1) set serveroutput on DECLARE vempid employees. employee_id%TYPE: =199; vnama employees. last_name%TYPE;
CONTOH PREDEFINED EXCEPTION ( 2) BEGIN SELECT last_name INTO vnama FROM employees WHERE employee_id=vempid; dbms_output. put_line('Namanya : '||vnama);
CONTOH PREDEFINED EXCEPTION (2) EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output. put_line('Data Tidak Ada'); end; /
CONTOH USER DEFINED EXCEPTION (1) set serveroutput on DECLARE vempid employees. employee_id%TYPE; vnama employees. last_name%TYPE; vsal employees. salary%TYPE; pesan exception;
CONTOH USER DEFINED EXCEPTION (2) BEGIN SELECT last_name, salary INTO vnama, vsal FROM employees WHERE employee_id=182; dbms_output. put_line(vnama||' '||vsal); if vsal < 3000 then raise pesan; end if;
CONTOH USER DEFINED EXCEPTION (3) EXCEPTION WHEN pesan then dbms_output. put_line('Gaji dibawah $3000'); end; /
PROCEDURE DAN FUNCTION
PROCEDURE CREATE OR REPLACE PROCEDURE TAMPIL IS VSAL EMPLOYEES. SALARY%TYPE; BEGIN SELECT SALARY INTO VSAL FROM EMPLOYEES WHERE EMPLOYEE_ID=199; DBMS_OUTPUT. PUT_LINE(VSAL); END; /
PROCEDURE EXEC TAMPIL; BEGIN TAMPIL; END; /
MENJALANKAN PROCEDURE CREATE OR REPLACE PROCEDURE INPUT_TAMPIL(VEMPID NUMBER) IS VNAMA EMPLOYEES. LAST_NAME%TYPE; VSAL EMPLOYEES. SALARY%TYPE; BEGIN SELECT LAST_NAME, SALARY INTO v. NAMA, v. SAL FROM EMPLOYEES WHERE EMPLOYEE_ID=VEMPID; DBMS_OUTPUT. PUT_LINE('NAMANYA : '||VNAMA||' GAJINYA : '||VSAL); END; /
- Hipotesis penelitian
- Dalam laporan percobaan tidak ada urutan waktu tetapi ada
- Jelaskan keluarga yang kuat melahirkan pribadi yang kuat
- Bahan lunak fiberglass memiliki struktur
- Eksplorasi bakat adalah
- Doa sebelum makan
- Mengapa dalam menghadapi ujian nasional harus percaya diri
- Rencana belajar efektif
- Apa kegunaan user interface dalam sistem tertanam
- Mengapa manusia harus dididik
- Grafika komputer untuk komunikasi
- Mengapa kurikulum harus direvisi
- Mengapa peneliti harus menetapkan tujuan penelitian
- Manfaat mempelajari manajemen risiko
- Motivasi dalam manajemen
- Mengapa ikan harus disortir sebelum dilelang
- Kenapa bakteri harus diwarnai
- Pengertian manajemen dana bank
- Cursores plsql
- Plsql topics
- Plsql replace
- Plsql programming
- Stored procedure plsql
- Plsql is
- Difference between pl/sql and sql
- Record type in plsql