| General |
| Data Dictionary Objects |
| trigger$ |
dba_triggers |
all_triggers |
user_triggers |
| |
dba_trigger_ordering |
dba_errors_ae |
dba_objects_ae |
|
| System Privileges |
create trigger
create any trigger
alter any trigger
drop any trigger |
| |
| CREATE |
Create Forward Editioning Trigger |
CREATE OR REPLACE TRIGGER
<trigger_name>
BEFORE <INSERT OR UPDATE OR DELETE>
ON <table_name>
FOR EACH ROW
<FORWARD CROSSEDITION [FOLLOWS <trigger_name>] |
REVERSE CROSSEDITION [PRECEDES <trigger_name>]>
<ENABLE | DISABLE>
BEGIN
<trigger_body_code>
END;
/ |
CREATE OR REPLACE
TRIGGER Contacts_Fwd_Xed
BEFORE INSERT OR UPDATE ON Contacts_Table
FOR EACH ROW
FORWARD CROSSEDITION
DISABLE
BEGIN
Set_First_And_Last_Name(:NEW.Name_1, :NEW.First_Name_2,
:NEW.Last_Name_2);
Set_Country_Code_And_Phone_No(:NEW.Phone_Number_1, :NEW.Country_Code_2,
:NEW.Phone_Number_2);
END Contacts_Fwd_Xed;
/ |
Create Reverse Editioning Trigger |
CREATE OR REPLACE
TRIGGER Contacts_Rvrs_Xed
BEFORE INSERT OR UPDATE ON Contacts_Table
FOR EACH ROW
REVERSE CROSSEDITION
DISABLE
BEGIN
:NEW.Name_1 := :NEW.Last_Name_2||', '||:NEW.First_Name_2;
:NEW.Phone_Number_1 :=
CASE :New.Country_Code_2 WHEN '+1' THEN
REPLACE(:NEW.Phone_Number_2, '-', '.')
ELSE
'011.'||LTRIM(:NEW.Country_Code_2,
'+')||'.'|| REPLACE(:NEW.Phone_Number_2, '-', '.')
END;
END Contacts_Rvrs_Xed;
/ |
FOLLOWS CLAUSE |
CREATE OR REPLACE
TRIGGER follows_test
BEFORE INSERT OR UPDATE ON person_tab
FOR EACH ROW
FORWARD CROSSEDITION
FOLLOWS ebradmin.person_fwd_xed
ENABLE
BEGIN
dbms_output.put_line('FOLLOWS_TEST');
END person_fwd_xed;
/ |
PRECEDES CLAUSE |
CREATE OR REPLACE
TRIGGER precedes_test
BEFORE INSERT OR UPDATE ON person_tab
FOR EACH ROW
REVERSE CROSSEDITION
PRECEDES ebradmin.person_rev_xed
ENABLE
BEGIN
dbms_output.put_line('PRECEDES_TEST');
END person_rev_xed;
/ |
| |
| ALTER |
Alter Editioning Trigger Enable or Disable |
DROP TRIGGER <trigger_name> <ENABLE |
DISABLE>; |
SELECT trigger_name,
status
FROM user_triggers;
ALTER TRIGGER Contacts_Fwd_Xed
DISABLE;
SELECT trigger_name, status
FROM user_triggers;
ALTER TRIGGER Contacts_Fwd_Xed
ENABLE;
SELECT trigger_name, status
FROM user_triggers; |
| |
| DROP |
| Drop Editioning Trigger |
DROP TRIGGER <trigger_name>; |
|
DROP TRIGGER Contacts_Fwd_Xed; |