wellcome

Kamis, 23 Desember 2010

♥ tugas 7 DBMS ♥


DBMS 7 [ TRIGGER ]
Nama    : Irma Santikarama
Kelas     : PIS 0904
NIM       : 30108255

create or replace trigger nama_trigger
timing   --> isinya before, after, instaead of
event1 or event2 or event3    -->insert, update, delete, logon, logoff
ON nama_objek   --> nama tabel, nama user, database
begin
...
end;
/


Contoh trigger

create or replace trigger anulogin
after
logon
on database

begin
insert into rekaman values(user, sysdate, sysdate, 'login dari database');
dbms_output.put_line('haloo '||user);
end;
/


create or replace trigger anuinsert
after
insert
on regions
for each row
begin
insert into rekaman values(user,sysdate,sysdate,
'tambah data ke tabel regions dengan id '||:new.region_id);
end;
/

♥ tugas 6 DBMS ♥


DBMS 6 [ FUNCTION ]
Nama    : Irma Santikarama
Kelas     : PIS 0904
NIM       : 30108255

CREATE OR REPLACE FUNCTION function_name
(argument1 mode1 datatype1,
argument2 mode2 datatype2,
. . .) RETURN datatype
IS
Daftar variabel lokal jika ada
BEGIN
RETURN …. ;
END;
/
Note:
Tidak wajib ada, sesuaikan dengan kebutuhan
Daftar argumen tidak wajib ada, sesuaikan dengan kubutuhan
Pilihan mode: IN atau OUT atau IN OUT, defaultnya adalah IN
Selain IS boleh juga pake AS


Contoh function dengan parameter

CREATE OR REPLACE FUNCTION check_sal(empno employees.employee_id%TYPE)
RETURN Varchar IS
dept_id employees.department_id%TYPE;
sal employees.salary%TYPE;
avg_sal employees.salary%TYPE;
BEGIN
SELECT salary,department_id INTO sal,dept_id
FROM employees WHERE employee_id=empno;
SELECT avg(salary) INTO avg_sal FROM employees
WHERE department_id=dept_id;
IF sal > avg_sal THEN
RETURN 'Gaji Di Atas Rata-Rata';
ELSE
RETURN 'Gaji Di Bawah Rata-Rata';
END IF;
EXCEPTION
WHEN no_data_found THEN
RETURN 'ID Karyawan tidak ditemukan';
END;
/

♥ tugas 5 DBMS ♥


DBMS 5 [ PROSEDURE ]
Nama    : Irma Santikarama
Kelas     : PIS 0904
NIM       : 30108255


CREATE OR REPLACE PROCEDURE procedure_name
(parameter1 mode1 datatype1,
parameter2 mode2 datatype2,
. . .)
IS
Daftar variabel lokal jika ada
BEGIN
END;
/

Note:
Tidak wajib ada, sesuaikan dengan kebutuhan
Daftar parameter tidak wajib ada, sesuaikan dengan kubutuhan
Pilihan mode: IN atau OUT atau IN OUT, defaultnya adalah IN
Selain IS boleh juga pake AS


Contoh Prosedur Tanpa Parameter

CREATE OR REPLACE PROCEDURE add_dept IS
dept_id departments.department_id%TYPE;
dept_name departments.department_name%TYPE;
BEGIN
dept_id:=280;
dept_name:='ST-Curriculum';
INSERT INTO departments (department_id,department_name)
VALUES(dept_id,dept_name);
DBMS_OUTPUT.PUT_LINE(' Berhasil menginsert'||
SQL%ROWCOUNT ||' baris ');
Exception
When dup_val_on_index then
DBMS_OUTPUT.PUT_LINE(‘Datanya udah ada‘);
END;
/


Contoh Prosedure Dengan Parameter

CREATE OR REPLACE PROCEDURE add_dept_pake_param
(dept_id IN departments.department_id%TYPE,
dept_name departments.department_name%TYPE)
IS
BEGIN
INSERT INTO departments (department_id,department_name)
VALUES(dept_id,dept_name);
DBMS_OUTPUT.PUT_LINE(' Berhasil menginsert'||
SQL%ROWCOUNT ||' baris ');
Exception
When dup_val_on_index then
DBMS_OUTPUT.PUT_LINE(‘Datanya udah ada‘);
END;
/