Question: SET SERVEROUTPUT ON DECLARE CURSOR C_INVALID_OBJECTS AS SELECT OBJECT_NAME, OBJECT_TYPE, STATUS FROM USER_OBJECTS WHERE STATUS = 'INVALID'; R_INVALID_OBJECTS C_INVALID_OBJECTS%ROWTYPE; BEGIN OPEN C_INVALID_OBJECTS; FETCH C_INVALID_OBJECTS; LOOP
SET SERVEROUTPUT ON
DECLARE
CURSOR C_INVALID_OBJECTS
AS
SELECT OBJECT_NAME, OBJECT_TYPE, STATUS
FROM USER_OBJECTS
WHERE STATUS = 'INVALID';
R_INVALID_OBJECTS C_INVALID_OBJECTS%ROWTYPE;
BEGIN
OPEN C_INVALID_OBJECTS;
FETCH C_INVALID_OBJECTS;
LOOP
EXECUTE DBMS_DDL.ALTER_COMPILE(R_INVALID_OBJECTS.OBJECT_TYPE, HR, R_INVALID_OBJECTS.OBJECT_NAME);
EXIT WHEN R_INVALID_OBJECTS%NOTFOUND;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(No data found);
END;
Step 2
Complete the remaining part as directed in the comment inside the BEGIN section of the anonymous block.
Alter the program to compile a table and demonstrate the exception catches (ORA-20002: Not a valid object type value.). (60%)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
