日期:2014-05-17  浏览次数:20840 次

如何查询同一字段所在的表(好像有点难?)
请各位大侠帮忙:
小弟想查询一个名为拥有AA的字段(同一个列名称)的所有表,要求不仅仅字段名称相同,而且,数据类型,数据长度也必须要相同:
select table_name,column_name from user_tab_columns where column_name= "字段名(大写)"
上面的语句是字段名称相同情况下的查询,请问,如何把数据类型,和数据长度也作为条件加上呢?(比如数据类型是VARCHAR2,长度是8)
。。。。。。。谢谢

------解决方案--------------------
select table_name,column_name from user_tab_columns
where column_name = 'LAST_NUMBER'
and data_type = 'NUMBER'
and data_length = 22


------解决方案--------------------
select * from user_tab_columns
where (column_name||data_type||data_length ) in
(select column_name||data_type||data_length
from user_tab_columns
group by column_name,data_type,data_length 
having count(column_name) > 1)
------解决方案--------------------
有三个数据字典视图可以查询列信息

user_tab_columns
all_tab_columns
dba_tab_columns

user_和all_只能察看当前用户的表
dba_可以查看全部表,但需要dba权限

可以describe一下这些视图的结构