Situs informasi aplokasi, Tips dan trik, Berita, informasi Teknologi, perkembangan Gadget dan internet.

Thursday, November 14, 2019

Tips Dan Trik Triggers Pada Pl/Sql

Sintak Dasar

Di bawah ini yakni sintak dasar untuk menciptakan trigger database di Oracle PL/SQL:

CREATE [OR REPLACE ] TRIGGER trigger_name {BEFORE | AFTER | INSTEAD OF } {INSERT [OR] | UPDATE [OR] | DELETE} [OF col_name] ON table_name [REFERENCING OLD AS o NEW AS n] [FOR EACH ROW] WHEN (condition) DECLARE    Declaration-statements BEGIN    Executable-statements EXCEPTION    Exception-handling-statements END; 

Contoh Program #1

Di bawah ini yakni rujukan aktivitas trigger Before Delete Or Insert Or Update di Oracle PL/SQL:

CREATE OR REPLACE TRIGGER name_changes_trigger    BEFORE DELETE OR INSERT OR UPDATE    ON mahasiswa    FOR EACH ROW DECLARE     BEGIN        IF length(:new.npm) < 7 THEN         raise_application_error(-20015, 'Panjang NPM dihentikan kurang dari 7 digit');    END IF;     DBMS_OUTPUT.put_line ('Nama Lama: ' || :OLD.nama);    DBMS_OUTPUT.put_line ('Nama Baru: ' || :NEW.nama); END; 

Coba Anda masukkan perintah insert data menyerupai dibawah ini dengan panjang NPM kurang dari 7 digit

INSERT INTO mahasiswa VALUES('001','Nanana','Teknik Komputer');  

Maka akan keluar error

ERROR at line 1: ORA-20015: Panjang NPM dihentikan kurang dari 7 digit ORA-06512: at "NANO.NAME_CHANGES_TRIGGER", line 6 ORA-04088: error during execution of trigger 'NANO.NAME_CHANGES_TRIGGER' 

Contoh Program#2

Di bawah ini yakni rujukan aktivitas trigger After Update di Oracle PL/SQL:

DROP TRIGGER NANO.NAME_CHANGES_TRIGGER_2;  CREATE OR REPLACE TRIGGER NANO.name_changes_trigger_2    AFTER UPDATE    ON NANO.MAHASISWA    FOR EACH ROW DECLARE     BEGIN        IF length(:new.npm) < 7 THEN         raise_application_error(-20015, 'Panjang NPM dihentikan kurang dari 7 digit');    END IF;     DBMS_OUTPUT.put_line ('Nama Lama: ' || :OLD.nama);    DBMS_OUTPUT.put_line ('Nama Baru: ' || :NEW.nama); END; /  
Coba Anda test trigger yang telah anda buat dengan memakai perintah UPDATE menyerupai di bawah ini:

SQL> SET serveroutput on; SQL> UPDATE mahasiswa SET nama = 'Naura Krasiva' WHERE npm = '2015002'; Nama Lama: Nani Indriyani Nama Baru: Naura Krasiva  1 row updated.  

Melihat Daftar Trigger

Di bawah ini yakni query untuk melihat daftar trigger yang ada di database:

SQL> set linesize 1000; SQL> select owner, object_name, status   2  from all_objects   3  where object_type = 'TRIGGER';  OWNER                          OBJECT_NAME                    STATUS ------------------------------ ------------------------------ ------- NANO                           NAME_CHANGES_TRIGGER           VALID NANO                           NAME_CHANGES_TRIGGER_2         VALID