Soal Procedure
Soal Procedure
• Table Barang :
– field id type data number(10) Not Null
– field nama type data varchar2(50) Not Null
– field spesifikasi type data varchar2(200) Null
– field jumlah type data number(5) Null
– field satuan type data varchar2(20) Null
cursor tampil_nama_barang is
select nama from barang where lower(nama) like '%' || lower(kriteria) || '%';
begin
open tampil_nama_barang;
LOOP
FETCH tampil_nama_barang into nama_;
EXIT WHEN tampil_nama_barang%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(nama_);
END LOOP;
close tampil_nama_barang;
end;
Cth Cara Memanggil Procedure
set SERVEROUTPUT ON;
begin
pbarang('i');
end;
Soal ke 2
• User memasukkan ID employees pada user HR,
maka yang keluar adalah kategori lama bekerja
(hiredate), dengan aturan sbb :
1. Bila lama bekerja sama atau dibawah 17 Tahun,
masuk kategori Pegawai Madya
2. Bila lama bekerja diatas 17 Tahun namun
dibawah 21 tahun, masuk kategori Pegawai
Utama
3. Dan Bila lama bekerja sama dengan atau diatas
21 tahun, masuk kategori Pegawai Pembina
Jawaban
create or replace procedure Pemployees(id_ number)
is
lama_bekerja number;
begin
select round(MONTHS_BETWEEN(sysdate,hire_date)/12) into lama_bekerja
from employees where employee_id=id_;
if lama_bekerja<=17 then
dbms_output.put_line('Pegawai Madya');
elsif lama_bekerja>17 and lama_bekerja<21 then
dbms_output.put_line('Pegawai Utama');
elsif lama_bekerja>=21 then
dbms_output.put_line('Pegawai Pembina');
end if;
end;
Memanggil procedure
SET SERVEROUTPUT ON;
BEGIN
PEMPLOYEES(173);
END;