PRM Politeknik Telkom 2010 PROCEDURES & FUNCTIONS Different Between SubProgram & Anonymous Block Syntax Procedure Contoh Procedure tanpa Parameter
CREATE PROCEDURE add_dept IS
dept_id dept.department_id%TYPE; dept_name dept.department_name%TYPE; BEGIN dept_id:=280; dept_name:='ST-Curriculum'; INSERT INTO dept(department_id,department_name) VALUES(dept_id,dept_name); DBMS_OUTPUT.PUT_LINE(' Inserted '||SQL%ROWCOUNT ||' row '); END;
CARA MENJALANKAN : EXEC add_dept
Contoh Procedure dengan Parameter Input
CREATE PROCEDURE add_dept2
(dept_id IN dept.department_id%TYPE, dept_name dept.department_name%TYPE) IS BEGIN INSERT INTO dept(department_id,department_name) VALUES(dept_id,dept_name); DBMS_OUTPUT.PUT_LINE(' Inserted '||SQL%ROWCOUNT ||' row '); END;
CARA MENJALANKAN : EXEC add_dept2(290,’XXXX’) ATAU
EXEC add_dept2(dept_name=>’ZZZZZ’,dept_id=>300) create or replace procedure latihan (nama varchar2) AS begin dbms.output.put_line('Hello '||nama); dbms.output.put_line('Today : '||SYSDATE); dbms.output.put_line('Tomorrow : '||SYSDATE+1); end; / Buat stored procedure utk menampilkan nama(last_name) serta gaji pegawai yang gajinya diatas rata2 dari gaji seluruh pegawai berdasarkan departemen id tertentu create or replace procedure lat is cursor pegawai is select last_name,avg(salary) from employees e, departments d where e.department_id=d.department_id group by department_id; vRec pegawai%rowtype; begin open pegawai; loop fetch pegawai into vRec; exit when pegawai%notfound; dbms.output.put_line(vRec.last_name|| ' ' || vRec.salary); end loop; close pegawai; end; /