Intermediate
Q: | |
16-22. | Executing the procedure results in an error because DBMS_SQL treats :OLD and :NEW as ordinary bind variables; consequently, it complains that not all the binds have been assigned. In short, the :OLD and :NEW predicates can’t be directly referenced in statements executed via dynamic SQL. |
Q: | |
16-23. | The following template shows how to raise an error when a DML statement violates a business rule: /* Filename on web page: secure_del_trigger.sql */ CREATE OR REPLACE TRIGGER secure_del_trigger BEFORE DELETE ON emp FOR EACH ROW DECLARE unauthorized_deletion EXCEPTION; BEGIN IF <your business rule is violated> THEN RAISE unauthorized_deletion; END IF; EXCEPTION WHEN unauthorized_deletion THEN raise_application_error (-20500, 'This record cannot be deleted'); END; / |
Q: | |
16-24. | (b). Object privileges must be granted directly to the trigger owner and cannot be acquired through database roles. |
Q: | |
16-25. | The triggers are:
|
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.