Download - Procedure function
PROCEDURE DAN FUNCTION PADA PL/SQL
MODUL XII
PROCEDURE DAN FUNCTION PADA PL/SQL
A. Maksud
Menjelaskan pembuatan dan pemanggilan procedure dan function dengan menggunakan PL/SQL
B. Tujuan
Mahasiswa dapat membuat dan menggunakan procedure atau function dengan PL/SQLC. Dasar Teori
Procedure dan function adalah sebuah blok PL/SQL yang dapat berdiri sendiri dan disimpan sebagai suatu objek di dalam database untuk melakukan tugas-tugas spesifik tertentu. Hal ini akan membuat kode yang dibuat lebih bersifat modular sehingga mudah untuk di-maintain.
PROCEDURE
Procedure adalah suatu blok PL/SQL yang menyimpan sekumpulan perintah yang tidak disertai dengan pengembalian nilai. Dengan kata lain, procedure hanya melakukan proses tertentu saja.
Syntax untuk membuat procedure
CREATE [OR REPLACE] PROCEDURE nama_procedure
(parameter_1 tipedata, parameter_2 tipedata, ) IS
variabel-variabel_lokal
BEGIN
Statemen;
END;
FUNCTION
Function adalah sebuah blok PL/SQL yang dapat mengembalikan nilai. Maka dari itu dalam pembuatannya harus menggunakan statemen RETURN untuk proses pengembalian nilai.
Syntax untuk membuat function
CREATE OR REPLACE FUNCTION nama_function
(parameter_1 tipedata, parameter_2 tipedata, ) IS
RETURN tipedata_function IS
variabel-variabel_lokal
BEGIN
Statemen;
RETURN nilai_function;
END;
D. Praktik
Praktikkan beberapa PL/SQL dibawah ini
CREATE OR REPLACE PROCEDURE LAP_DEPARTMEN AS
BEGIN
for deptid in
(SELECT d.department_id, department_name,
count(employee_id) jml
FROM departments d, employees e
WHERE d.department_id = e.department_id(+)
GROUP BY d.department_id, department_name)
loop
dbms_output.put_line
(deptid.department_id ||Kode dari departemen ||
deptid.department_name ||
dengan jumlah karyawan = || deptid.jml);
for emp in
(select employee_id, last_name
from employees
where department_id=deptid.department_id)
loop
dbms_output.put_line( ||emp.employee.id||
||emp.last_name);
end loop;
end loop;
END LAP_DEPARTMEN;
Panggil procedure tersebut dengan mengetikkan perintah
exec lap_departmen;
CREATE OR REPLACE FUNCTION RATAGAJI
(deptid IN NUMBER)
RETURN NUMBER AS
sal number := 0.0;
BEGIN
select avg(salary) into sal from employee
where department_id=deptid;
RETURN sal;
END RATAGAJI;
Pemanggilannya
select department_id, department_name,
ratagaji(department_id) RATA-RATA GAJI
from departments;
E. Tugas
Akan diberikan pada saat praktikum
PAGE 53