1. Buatlah tabel PEGAWAI_3NIM yang berisi EMPNO, FULLNAME dan
DEPTNAME. Kemudian buatlah prosedur dengan nama MULTIPLE_3NIM dengan ketentuan: - Lakukan insert ke tabel PEGAWAI_3NIM berdasarkan tabel employee (10 baris saja, urutkan berdasarkan FIRSTNME) - Prosedur terdiri dari result sets 2 - Result set 1 menampilkan "DATA BERHASIL DIMASUKKAN" - Result set 2 menampilkan data tabel PEGAWAI_3NIM CREATE TABLE PEGAWAI_060( P_EMPNO VARCHAR(6), P_FULLNAME VARCHAR(30), P_DEPTNAME VARCHAR(30) )@ CREATE OR REPLACE PROCEDURE MULTIPLE_060() DYNAMIC RESULT SETS 2 BEGIN DECLARE IN_EMPNO VARCHAR (6); DECLARE IN_FIRSTNME VARCHAR (15); DECLARE IN_LASTNAME VARCHAR (15); DECLARE IN_DEPTNAME VARCHAR (30); DECLARE FULL_NAME VARCHAR (30); DECLARE COUNTER INTEGER DEFAULT 0; DECLARE CURSOR1 CURSOR FOR SELECT EMPNO, FIRSTNME, LASTNAME, DEPTNAME FROM EMPLOYEE, DEPARTMENT WHERE WORKDEPT = DEPTNO ORDER BY FIRSTNME; OPEN CURSOR1; DELETE FROM PEGAWAI_060; ULANG : LOOP FETCH CURSOR1 INTO IN_EMPNO, IN_FIRSTNME, IN_LASTNAME, IN_DEPTNAME; SET FULL_NAME = IN_FIRSTNME ||' '|| IN_LASTNAME; INSERT INTO PEGAWAI_060 VALUES (IN_EMPNO, FULL_NAME, IN_DEPTNAME); SET COUNTER = COUNTER+1; IF COUNTER >=10 THEN LEAVE ULANG; END IF; END LOOP ULANG; P2 : BEGIN DECLARE CUR1 CURSOR WITH RETURN FOR SELECT 'DATA BERHASIL DIMASUKKAN' FROM SYSIBM.DUAL; DECLARE CUR2 CURSOR WITH RETURN FOR SELECT * FROM PEGAWAI_060; OPEN CUR1; OPEN CUR2; END P2; END@
2. Buatlah prosedur untuk melakukan update kolom MIDINIT pada employee
menggunakan cursor dengan ketentuan: - Prosedur terdiri dari 2 result sets - Result set 1 menampilkan pesan "DATA BERHASIL DIUPDATE" - Result set 2 menampilkan semua data pegawai berupa FIRSTNME, MIDINIT, dan LASTNAME setelah data employee diupdate - Data yang diupdate berupa MIDINIT pada data employee yang terletak pada baris ke-( 1 digit nim terakhir) dan nilai MIDINIT diupdate dengan inisial huruf pertama FIRSTNME masing2. CREATE OR REPLACE PROCEDURE UPD_MIDINIT_060() DYNAMIC RESULT SETS 2 BEGIN DECLARE COUNTER INTEGER DEFAULT 0; DECLARE MID_INIT CHAR(1); DECLARE C_1 CURSOR WITH RETURN FOR SELECT 'DATA BERHASIL DIUPDATE' FROM SYSIBM.DUAL; DECLARE C_2 CURSOR WITH RETURN FOR SELECT FIRSTNME, MIDINIT, LASTNAME FROM EMPLOYEE; DECLARE C CURSOR FOR SELECT MIDINIT FROM EMPLOYEE FOR UPDATE OF MIDINIT; OPEN C; OPEN C_1; WHILE COUNTER < 10 DO FETCH FROM C INTO MID_INIT; SET COUNTER = COUNTER + 1; END WHILE; UPDATE EMPLOYEE SET MIDINIT = 'R' WHERE CURRENT OF C; OPEN C_2; END@