使用oracle中d​​ba_tables和all_dependencies之间的连接查询表的列表

时间:2017-01-27 06:55:52

标签: sql oracle

我的oracle数据库中有大约15000个表。我想主要获取这些未使用的表的列表,因为它们没有出现在all_dependencies中,而是使用了dba_tables和all_dependencies之间的连接。

查询是什么?

3 个答案:

答案 0 :(得分:0)

我不确定这是否是你想要的,all_dependencies中不存在的表

select  t.table_name from all_tables t where t.table_name
 not in (select referenced_name from all_dependencies d where t.table_name=d.referenced_name and d.REFERENCED_TYPE='TABLE') 

答案 1 :(得分:0)

Check this if it works for you..

SELECT *
  FROM dba_tables tb
 WHERE NOT EXISTS
              (SELECT 1
                 FROM all_dependencies dep
                WHERE     TB.OWNER = DEP.OWNER
                      AND TB.TABLE_NAME = DEP.REFERENCED_NAME
                      AND DEP.REFERENCED_TYPE = 'TABLE');

答案 2 :(得分:0)

查询变为:

SELECT t.table_name
  FROM dba_tables t
 WHERE t.table_name NOT IN (SELECT d.referenced_name 
                              FROM dba_dependencies d
                             WHERE d.REFERENCED_TYPE = 'TABLE'
                             and d.referenced_name =  t.table_name)