Skip to main content

Find missing comments

D

Did you even wonder if you have commnets on all your tables/views and columns?

WITH o AS (
    SELECT o.object_type, o.object_name
    FROM user_objects o
    WHERE o.object_type IN ('TABLE', 'VIEW')
),
r AS (
    SELECT o.object_type, o.object_name, NULL AS column_name
    FROM o
    JOIN user_tab_comments c
        ON c.table_name     = o.object_name
    WHERE c.comments IS NULL
    UNION ALL
    SELECT o.object_type, o.object_name, c.column_name
    FROM o
    JOIN user_col_comments c
        ON c.table_name     = o.object_name
    WHERE c.comments IS NULL
)
SELECT
    r.object_type,
    r.object_name,
    MAX(CASE WHEN r.column_name IS NULL     THEN 1 END)                     AS table_missing,
    NULLIF(SUM(CASE WHEN r.column_name IS NOT NULL THEN 1 ELSE 0 END), 0)   AS columns_missing
FROM r
GROUP BY r.object_type, r.object_name
ORDER BY 2;


Comments