From 6e60041cac633656cba24a5aba229bf77ffab9d5 Mon Sep 17 00:00:00 2001 From: Jan Kvetina Date: Sat, 15 Jan 2022 09:41:34 +0100 Subject: [PATCH] Fix joins --- views/obj_constraints_fix_dt1.sql | 14 +++++++++++--- views/obj_constraints_fix_dt2.sql | 14 +++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/views/obj_constraints_fix_dt1.sql b/views/obj_constraints_fix_dt1.sql index 0b301fe..aaa66c0 100644 --- a/views/obj_constraints_fix_dt1.sql +++ b/views/obj_constraints_fix_dt1.sql @@ -25,8 +25,6 @@ s AS ( c.constraint_name, n.r_constraint_name FROM user_tab_columns a - JOIN x - ON a.table_name = NVL(x.table_name, a.table_name) JOIN user_tables t ON t.table_name = a.table_name JOIN user_cons_columns c @@ -52,5 +50,15 @@ FROM s JOIN s b ON b.r_constraint_name = s.constraint_name AND b.position = s.position -WHERE s.data_type != b.data_type; +CROSS JOIN x +WHERE s.data_type != b.data_type + AND ( + s.column_name IN ( + SELECT c.column_name + FROM user_tab_cols c + JOIN x + ON x.table_name = c.table_name + ) + OR x.table_name IS NULL + ); diff --git a/views/obj_constraints_fix_dt2.sql b/views/obj_constraints_fix_dt2.sql index 4977199..de2de61 100644 --- a/views/obj_constraints_fix_dt2.sql +++ b/views/obj_constraints_fix_dt2.sql @@ -20,8 +20,6 @@ s AS ( ELSE a.data_type END AS data_type FROM user_tab_columns a - JOIN x - ON a.table_name = NVL(x.table_name, a.table_name) JOIN user_tables t ON t.table_name = a.table_name LEFT JOIN user_mviews m @@ -55,5 +53,15 @@ FROM ( FROM s GROUP BY s.column_name, s.data_type ) s -WHERE s.count_types > 1; +CROSS JOIN x +WHERE ( + s.column_name IN ( + SELECT c.column_name + FROM user_tab_cols c + JOIN x + ON x.table_name = c.table_name + ) + OR x.table_name IS NULL + ) + AND s.count_types > 1;