如何区分数据库对象(在Oracle中)是表还是视图

dRv*_*dRv 3 sql oracle

我想区分一个视图和一个表.基本上,我想找到所有具有特定列名称的表.

select table_name from user_tab_columns x where column_name='STUDENTID';
Run Code Online (Sandbox Code Playgroud)

上面的查询还返回具有相同列的视图.我尝试使用以下,但是,我觉得运行和返回需要很长时间...

select table_name from user_tables where table_name in (select x.table_name from user_tab_columns x where x.column_name='PLAN_NAME');
Run Code Online (Sandbox Code Playgroud)

请给我任何建议.

phl*_*tos 7

我想连接会比subselect更快.试试这个:

select c.table_name 
from user_tab_columns c, user_tables t
where c.table_name = t.table_name
and c.column_name='STUDENTID';
Run Code Online (Sandbox Code Playgroud)