PL/SQL Interview Questions II
- What is the maximum number of handlers processed before the PL/SQL block is exited when an exception occurs?
- Only one
- All that apply
- All referenced
- None
- For which trigger timing can you reference the NEW and OLD qualifiers?
- Statement and Row
- Statement only
- Row only
- Oracle Forms trigger
- Read the following code:
CREATE OR REPLACE FUNCTION get_budget(v_studio_id IN NUMBER) RETURN number IS v_yearly_budget NUMBER; BEGIN SELECT yearly_budget INTO v_yearly_budget FROM studio WHERE id = v_studio_id; RETURN v_yearly_budget; END;
Which set of statements will successfully invoke this function within SQL*Plus?
- VARIABLE g_yearly_budget NUMBER
EXECUTE g_yearly_budget := GET_BUDGET(11); - VARIABLE g_yearly_budget NUMBER
EXECUTE :g_yearly_budget := GET_BUDGET(11); - VARIABLE :g_yearly_budget NUMBER
EXECUTE :g_yearly_budget := GET_BUDGET(11); - VARIABLE g_yearly_budget NUMBER
:g_yearly_budget := GET_BUDGET(11);
- VARIABLE g_yearly_budget NUMBER
-
CREATE OR REPLACE PROCEDURE update_theater (v_name IN VARCHAR v_theater_id IN NUMBER) IS BEGIN UPDATE theater SET name = v_name WHERE id = v_theater_id; END update_theater;
When invoking this procedure, you encounter the error:
ORA-000: Unique constraint(SCOTT.THEATER_NAME_UK) violated.
How should you modify the function to handle this error?
- An user defined exception must be declared and associated with the error code and handled in the EXCEPTION section.
- Handle the error in EXCEPTION section by referencing the error code directly.
- Handle the error in the EXCEPTION section by referencing the UNIQUE_ERROR predefined exception.
- Check for success by checking the value of SQL%FOUND immediately after the UPDATE statement.
- Read the following code:
CREATE OR REPLACE PROCEDURE calculate_budget IS v_budget studio.yearly_budget%TYPE; BEGIN v_budget := get_budget(11); IF v_budget < 30000 THEN set_budget(11,30000000); END IF; END;
You are about to add an argument to CALCULATE_BUDGET. What effect will this have?
- The GET_BUDGET function will be marked invalid and must be recompiled before the next execution.
- The SET_BUDGET function will be marked invalid and must be recompiled before the next execution.
- Only the CALCULATE_BUDGET procedure needs to be recompiled.
- All three procedures are marked invalid and must be recompiled.
- Which procedure can be used to create a customized error message?
- RAISE_ERROR
- SQLERRM
- RAISE_APPLICATION_ERROR
- RAISE_SERVER_ERROR
- The CHECK_THEATER trigger of the THEATER table has been disabled. Which command can you issue to enable this trigger?
- ALTER TRIGGER check_theater ENABLE;
- ENABLE TRIGGER check_theater;
- ALTER TABLE check_theater ENABLE check_theater;
- ENABLE check_theater;
- Examine this database trigger
CREATE OR REPLACE TRIGGER prevent_gross_modification {additional trigger information} BEGIN IF TO_CHAR(sysdate, DY) = MON THEN RAISE_APPLICATION_ERROR(-20000,Gross receipts cannot be deleted on Monday); END IF; END;This trigger must fire before each DELETE of the GROSS_RECEIPT table. It should fire only once for the entire DELETE statement. What additional information must you add?
- BEFORE DELETE ON gross_receipt
- AFTER DELETE ON gross_receipt
- BEFORE (gross_receipt DELETE)
- FOR EACH ROW DELETED FROM gross_receipt
- Examine this function:
CREATE OR REPLACE FUNCTION set_budget (v_studio_id IN NUMBER, v_new_budget IN NUMBER) IS BEGIN UPDATE studio SET yearly_budget = v_new_budget WHERE id = v_studio_id; IF SQL%FOUND THEN RETURN TRUEl; ELSE RETURN FALSE; END IF; COMMIT; END;
Which code must be added to successfully compile this function?
- Add RETURN right before the IS keyword.
- Add RETURN number right before the IS keyword.
- Add RETURN boolean right after the IS keyword.
- Add RETURN boolean right before the IS keyword.
- Under which circumstance must you recompile the package body after recompiling the package specification?
- Altering the argument list of one of the package constructs
- Any change made to one of the package constructs
- Any SQL statement change made to one of the package constructs
- Removing a local variable from the DECLARE section of one of the package constructs























