Fix joins

This commit is contained in:
Jan Kvetina 2022-01-15 09:41:34 +01:00
parent 2fbe88c62a
commit 6e60041cac
2 changed files with 22 additions and 6 deletions

View File

@ -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
);

View File

@ -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;