我一直在尝试找到一种方法来加入 Oracle 中的all_tab_columns
andall_cons_columns
以便我可以提取模式中每种数据类型的列数以及这些列参与的约束数的信息。我能够提取使用以下查询获取有关每种数据类型的表名和列数的信息:
SELECT DISTINCT atc.TABLE_NAME,
atc.DATA_TYPE,
COUNT(atc.DATA_TYPE)
FROM all_tab_columns atc
WHERE atc.OWNER = 'PARRANDEROS'
GROUP BY atc.DATA_TYPE,
atc.TABLE_NAME
但是,当尝试从all_cons_columns
所有内容中添加信息时会变得混乱。这是想到的查询,但结果没有意义:
SELECT DISTINCT atc.TABLE_NAME,
atc.DATA_TYPE,
COUNT(acc.COLUMN_NAME),
COUNT(atc.DATA_TYPE)
FROM all_tab_columns atc
INNER JOIN all_cons_columns acc
ON acc.COLUMN_NAME = atc.COLUMN_NAME AND
acc.TABLE_NAME = atc.TABLE_NAME
WHERE atc.OWNER = 'PARRANDEROS'
GROUP BY atc.DATA_TYPE,
atc.TABLE_NAME,
acc.COLUMN_NAME
如果我不够清楚,请告诉我。我对 SQL 很陌生,但一直在努力寻找解决方案。