You are on page 1of 8

STORED PROCEDURE

& STORED FUNCTION


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;
 /

You might also like