获取没有特定列的表名

时间:2017-05-19 13:59:25

标签: oracle

我必须列出没有特定列或列的表名(在oracle中)。 有什么建议吗?

此致 萨钦

2 个答案:

答案 0 :(得分:0)

select table_name from all_tables 
minus 
select table_name from all_tab_cols where column_name = 'YOUR_COL';

答案 1 :(得分:0)

你可以试试;

SELECT ut.table_name
FROM   user_tables ut
WHERE  NOT EXISTS
          (SELECT 1
           FROM   user_tab_columns utc
           WHERE      utc.table_name = ut.table_name
                  AND utc.column_name = 'your_column')

将检查您当前使用的架构。 您可以将其更改为ALL_视图,但之后您很可能需要过滤掉'SYS',SYSTEM,'MDSYS'等架构所有者。 @Kacper的答案很可能适合你。这个有可能更快,因为它可以在理论上使用索引,但我没有检查,它可能取决于你想要限制查询。