DECLARE
error_count_ NUMBER:=0;
row_count_ NUMBER:=0;
CURSOR get_invalid_objects IS
SELECT * FROM (
SELECT object_name, object_type, 'alter ' || object_type || ' ' || object_name || ' compile' text
FROM all_objects
WHERE object_type IN ('PACKAGE', 'VIEW', 'MATERIALIZED VIEW', 'TRIGGER', 'PROCEDURE', 'FUNCTION')
AND status='INVALID'
AND owner = USER
UNION ALL
SELECT object_name, object_type, 'alter package ' || object_name || ' compile body' text
FROM all_objects
WHERE object_type = 'PACKAGE BODY'
AND status='INVALID'
AND owner = USER)
ORDER BY DECODE(object_type, 'PACKAGE', 1, 'VIEW', 2, 'MATERIALIZED VIEW', 3, 4);
BEGIN
FOR invalid_object_ IN get_invalid_objects LOOP
row_count_:=row_count_+1;
BEGIN
EXECUTE IMMEDIATE invalid_object_.text;
EXCEPTION
WHEN OTHERS THEN
error_count_:=error_count_+1;
dbms_output.Put_Line('Error while compiling ' || invalid_object_.object_type || ' ' || invalid_object_.object_name);
END;
END LOOP;
Dbms_Output.Put_Line('===');
IF error_count_=0 THEN
Dbms_Output.Put_Line('All objects compiled successfully');
ELSE
Dbms_Output.Put_Line(row_count_-error_count_ || ' objects compiled successfully.');
Dbms_Output.Put_Line(error_count_ || ' objects compiled with compilation errors.');
END IF;
END;
top of page
Related Posts
See All[FndWindowRegistration("YVVDA_COMPANY_ADDR", "YvvdaCompanyAddr", FndWindowRegistrationFlags.HomePage)] [FndDynamicTabPage("frmCompanyAddr...
40
Example 1: SELECT DISTINCT LISTAGG(t.commission_receiver, ';') WITHIN GROUP (ORDER BY t.commission_receiver) FROM...
20
FUNCTION Strip_Ora_Error ( sqlerrm_ IN VARCHAR2, sqlcode_ IN NUMBER DEFAULT NULL, strip_ora_only_ IN BOOLEAN DEFAULT...
10
bottom of page
Comentarios