能不能查一个数据库里有多少个表有某个栏位

-一个大坑 2017-10-23 01:38:23
一个旧系统要改一个栏位,但是不知道涉及了多少个表。每个表都点开看有点多
...全文
609 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
-一个大坑 2017-10-23
  • 打赏
  • 举报
回复
引用 4 楼 qq646748739 的回复:
[quote=引用 3 楼 -一个大坑的回复:][quote=引用 1 楼 minsic78 的回复:]
栏位说的是字段?如果是的话,看下dba_tab_columns

这个怎么用?花了近一个小时,一个表一个表的看,找了20多个出来,还不知道有没有漏的[/quote]
不用这么麻烦,上面我的SQL可以实现你的需求。[/quote]

用building关键字搜的,会有重复的,还有缩写的没查到。而且比我自己看得多,我应该看漏了一些(有些没中文注释)
碧水幽幽泉 2017-10-23
  • 打赏
  • 举报
回复
引用 5 楼 happy4944 的回复:
[quote=引用 2 楼 qq646748739 的回复:]
普通用户查询all_tab_columns,dba用户查询dba_tab_columns

--1.查看数据库里有哪些表有某个栏位
select table_name,column_name from all_tab_columns where column_name = upper('栏位名称');
select table_name,column_name from dba_tab_columns where column_name = upper('栏位名称');

--2.查看数据库里有多少个表有某个栏位
select count(*) from all_tab_columns where column_name = upper('栏位名称');
select count(*) from dba_tab_columns where column_name = upper('栏位名称');

栏位的名字有的不一样,涉及到多个系统,每个系统写的人命名想法不一样。。。。而且涉及系统多,改了以后影响应该很大[/quote]
你这是查询N张表M个字段了,只有把所有相关字段度列出来,一个个执行我上面的查询了。
minsic78 2017-10-23
  • 打赏
  • 举报
回复
引用 5 楼 happy4944 的回复:
[quote=引用 2 楼 qq646748739 的回复:] 普通用户查询all_tab_columns,dba用户查询dba_tab_columns

--1.查看数据库里有哪些表有某个栏位
select table_name,column_name from all_tab_columns where column_name = upper('栏位名称');
select table_name,column_name from dba_tab_columns where column_name = upper('栏位名称');

--2.查看数据库里有多少个表有某个栏位
select count(*) from all_tab_columns where column_name = upper('栏位名称');
select count(*) from dba_tab_columns where column_name = upper('栏位名称');
栏位的名字有的不一样,涉及到多个系统,每个系统写的人命名想法不一样。。。。而且涉及系统多,改了以后影响应该很大[/quote] 字段名称都不一样,这就没有规律了,那这就不是技术问题了,你可以找各套系统的人给你整理各自系统的~
-一个大坑 2017-10-23
  • 打赏
  • 举报
回复
引用 2 楼 qq646748739 的回复:
普通用户查询all_tab_columns,dba用户查询dba_tab_columns

--1.查看数据库里有哪些表有某个栏位
select table_name,column_name from all_tab_columns where column_name = upper('栏位名称');
select table_name,column_name from dba_tab_columns where column_name = upper('栏位名称');

--2.查看数据库里有多少个表有某个栏位
select count(*) from all_tab_columns where column_name = upper('栏位名称');
select count(*) from dba_tab_columns where column_name = upper('栏位名称');
栏位的名字有的不一样,涉及到多个系统,每个系统写的人命名想法不一样。。。。而且涉及系统多,改了以后影响应该很大
碧水幽幽泉 2017-10-23
  • 打赏
  • 举报
回复
引用 3 楼 -一个大坑的回复:
[quote=引用 1 楼 minsic78 的回复:] 栏位说的是字段?如果是的话,看下dba_tab_columns
这个怎么用?花了近一个小时,一个表一个表的看,找了20多个出来,还不知道有没有漏的[/quote] 不用这么麻烦,上面我的SQL可以实现你的需求。
-一个大坑 2017-10-23
  • 打赏
  • 举报
回复
引用 1 楼 minsic78 的回复:
栏位说的是字段?如果是的话,看下dba_tab_columns
这个怎么用?花了近一个小时,一个表一个表的看,找了20多个出来,还不知道有没有漏的
碧水幽幽泉 2017-10-23
  • 打赏
  • 举报
回复
普通用户查询all_tab_columns,dba用户查询dba_tab_columns

--1.查看数据库里有哪些表有某个栏位
select table_name,column_name from all_tab_columns where column_name = upper('栏位名称');
select table_name,column_name from dba_tab_columns where column_name = upper('栏位名称');

--2.查看数据库里有多少个表有某个栏位
select count(*) from all_tab_columns where column_name = upper('栏位名称');
select count(*) from dba_tab_columns where column_name = upper('栏位名称');
minsic78 2017-10-23
  • 打赏
  • 举报
回复
栏位说的是字段?如果是的话,看下dba_tab_columns

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧