List invalid objects in OPY style

This commit is contained in:
Jan Kvetina 2022-07-22 17:07:45 +02:00
parent 124bda979c
commit e247d4c735

View File

@ -19,6 +19,7 @@ CREATE OR REPLACE PROCEDURE recompile (
v_warnings VARCHAR2(32767); v_warnings VARCHAR2(32767);
v_ccflags VARCHAR2(32767); v_ccflags VARCHAR2(32767);
v_invalids PLS_INTEGER; v_invalids PLS_INTEGER;
v_last_type VARCHAR2(30);
BEGIN BEGIN
/** /**
* This package is part of the APP CORE project under MIT licence. * This package is part of the APP CORE project under MIT licence.
@ -148,18 +149,16 @@ BEGIN
-- list invalid objects -- list invalid objects
IF v_invalids > 0 THEN IF v_invalids > 0 THEN
v_last_type := ' ';
FOR c IN ( FOR c IN (
SELECT object_type, LISTAGG(object_name, ', ') WITHIN GROUP (ORDER BY object_name) AS objects
FROM (
SELECT DISTINCT o.object_type, o.object_name SELECT DISTINCT o.object_type, o.object_name
FROM user_objects o FROM user_objects o
WHERE o.status != 'VALID' WHERE o.status != 'VALID'
ORDER BY o.object_type, o.object_name ORDER BY o.object_type, o.object_name
)
GROUP BY object_type
ORDER BY object_type
) LOOP ) LOOP
DBMS_OUTPUT.PUT_LINE(' ' || RPAD(c.object_type || ':', 15, ' ') || ' ' || c.objects); DBMS_OUTPUT.PUT_LINE(' ' || LPAD(CASE WHEN c.object_type != v_last_type THEN c.object_type END || ' | ', 20, ' ') || c.object_name);
--
v_last_type := c.object_type;
END LOOP; END LOOP;
DBMS_OUTPUT.PUT_LINE(''); DBMS_OUTPUT.PUT_LINE('');
END IF; END IF;