Expert

16-30.

If you create several triggers of the same type for the same table, in what order do the triggers fire?

16-31.

Optimize the performance of the following trigger and explain how this technique can minimize the number of times the trigger fires:

CREATE OR REPLACE TRIGGER employee_ins_t1
   AFTER UPDATE OR DELETE OR INSERT
   ON employee
   FOR EACH ROW
BEGIN
   IF (UPDATING) THEN
     IF :old.sal <> :new.sal THEN
       Employee_pkg.update_emp (:new.employee_id, :new.sal);
     END IF;
   END IF;
END;

16-32.

An HR system has an employee table that holds a row for each employee within the company. Each record in the table has a manager field, (mgr), that holds the ID for the employee’s manager. Write a trigger so that when a manager record is deleted, the mgr field of that manager’s employees is set to NULL. In other words, implement the following SQL statement:

WHEN AN EMPLOYEE IS DELETED,
   UPDATE employee SET
      mgr = null
   WHERE
      mgr = employee id of the deleted employee

16-33.

Due to a runtime error, an AFTER LOGON trigger in your database has become invalid. As a consequence, all users receive the following error when trying to connect to the database:

ORA-04098: trigger 'ON_LOGON' is invalid and failed re-validation

How can you fix the problem?

16-34.

What are the possible implications of using the pseudo-column names :OLD and :NEW in the following trigger, which uses autonomous transactions?

 /* Filename on web page: ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.