Discussions
Categories
- 196.9K All Categories
- 2.2K Data
- 239 Big Data Appliance
- 1.9K Data Science
- 450.4K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 546 SQLcl
- 4K SQL Developer Data Modeler
- 187.1K SQL & PL/SQL
- 21.3K SQL Developer
- 295.9K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.6K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 443 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 Portuguese
trigger

Hi All,
I am using
Connected to Oracle Database 11g Express Edition Release 11.2.0.2.0
I am using Oracle HR schema
I am trying to learn triggers
SQL> CREATE OR REPLACE TRIGGER BIUFER_EMPLOYEES_DEPARTMENT_ID
2 BEFORE INSERT OR UPDATE
3 OF DEPARTMENT_ID
4 ON EMPLOYEES
5 REFERENCING OLD AS OLD_VALUES
6 NEW AS NEW_VALUES
7 FOR EACH ROW
8 WHEN (NEW_VALUES.DEPARTMENT_ID <> 80)
9 BEGIN
10 :NEW_VALUES.COMMISSION_PCT :=0 ;
11 END;
12 /
Trigger created
This trigger will fire when any insert on employees table when the departemnt_id is not equal to 80 for new values
This trigger will fire when any update on employees table when the departemnt_id is not equal to 80 for new values
For the new values the COMMISSION_PCT will be changed to zeo if the trigger fires.
Please let me know my understanding is correct
Answers
-
SQL> CREATE OR REPLACE TRIGGER BIUFER_EMPLOYEES_DEPARTMENT_ID 2 BEFORE INSERT OR UPDATE 3 OF DEPARTMENT_ID 4 ON EMPLOYEES 5 REFERENCING OLD AS OLD_VALUES 6 NEW AS NEW_VALUES 7 FOR EACH ROW 8 WHEN (NEW_VALUES.DEPARTMENT_ID <> 80) 9 BEGIN 10 :NEW_VALUES.COMMISSION_PCT :=0 ; 11 END; 12 / Trigger created This trigger will fire when any insert on employees table when the departemnt_id is not equal to 80 for new values This trigger will fire when any update on employees table when the departemnt_id is not equal to 80 for new values
The trigger is going to fire on any insert or update of the DEPARTMENT_ID on the EMPLOYEES table regardless of the value. The COMMISION_PCT will only be set if the DEPARTMENT_ID is not 80.
-
it seems to be relatively correct, yes. What happened when you tested it?
You may want to consider what happens if someone inserts or updates department_id to NULL (hint NULL is not equal to 80 and it's also not NOT EQUAL to 80)