1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
select check_cons.owner, check_cons.table_name, constraint_name,search_condition,nb_check,nb_nullable
from (
SELECT ao.owner, ao.table_name, dc.constraint_name,
dc.search_condition, COUNT(dc.constraint_type) OVER (PARTITION BY dcc.column_name, dc.table_name, dc.owner) nb_check
FROM dba_tables ao, dba_constraints dc, dba_cons_columns dcc
WHERE dc.constraint_type = 'C'
AND ao.owner IN ('PENSOINS', 'SCH2')
AND dc.table_name = ao.table_name
AND dc.owner = ao.owner
AND dcc.owner = dc.owner
AND dcc.constraint_name = dc.constraint_name
) check_cons,
(
SELECT owner, table_name, column_name, count(1) nb_nullable
FROM dba_tab_columns
WHERE nullable = 'N'
AND owner IN ('PENSOINS', 'SCH2')
GROUP BY owner, table_name, column_name
) cons_null
where cons_null.table_name = check_cons.table_name
and cons_null.owner = check_cons.owner
and nb_check > nb_nullable |
Partager