db2命令可否实现,根据某个字段的值查询该条数据存放在哪些表中?

各位大牛,我现在遇到一个问题,我们现在想查web ui中一些字段存放在哪些表中,但是没有找到办法。请问能否根据某个字段的值,通过db2语句去查询存放这个值的数据保存在哪些表中?例如:有1个“事件编码”为“100001”的事件,是否可以根据“100001”查询“事件编码”这个字段存储在哪些表中?

参与20

5同行回答

haizdlhaizdl技术经理大连
如果业务上没有了解,知道字段名称的话,只能把表定义语句导出来,然后去检索。如果只有一个值,连字段名称也不知道,那就没法儿弄了。显示全部

如果业务上没有了解,知道字段名称的话,只能把表定义语句导出来,然后去检索。
如果只有一个值,连字段名称也不知道,那就没法儿弄了。

收起
银行 · 2017-08-28
topzgmtopzgm课题专家组软件架构设计师People's Bank of China
有关这个问题,根据个人经验,可以换一种思路来解决,仅供参考:1)总的思路:如果运维人员或者DBA没有参与该系统的设计和开发,从正向思路上来说,由于其不了解业务或者没有源代码,所以无法从WEB UI层面直接定位对应到后台DB层的表和字段。但是,可以从逆向思维出发,采用db2的监控技术,任...显示全部

有关这个问题,根据个人经验,可以换一种思路来解决,仅供参考:

1)总的思路:如果运维人员或者DBA没有参与该系统的设计和开发,从正向思路上来说,由于其不了解业务或者没有源代码,所以无法从WEB UI层面直接定位对应到后台DB层的表和字段。但是,可以从逆向思维出发,采用db2的监控技术,任何涉及DB层面的CRUD操作,都可以采用DB2监控工具来精确定位到DB层的表和字段。

2)具体做法:使用db2top -d xdb1,然后切换到工具的Table页,从WEB UI上反复进行查询,那么从db2top上可以看到哪些/那个表在一直读写,就可以定位到表;使用db2top -d xdb1,然后切换到工具的Dynamic SQL页,从WEB UI上反复进行查询,那么从db2top上可以看到执行的SQL语句,包括表和字段信息。其他的db2监控工具也可以达到同样的效果。

收起
银行 · 2017-09-01
仙道彰仙道彰数据库开发工程师花旗集团
给你点建议:1).如果上述需求是业务提出来的可以直接驳回,如果是我的话我会狠狠的屌他们一顿;2).如果只是自己出于技术探索拿出来探讨的话,根据我本人的经验可以有如下方案但不保证能取全; a).首先是锁定栏位 前提是必须知道该栏位的一些信息,比如栏位属性或者中文注释名...显示全部

给你点建议:
1).如果上述需求是业务提出来的可以直接驳回,如果是我的话我会狠狠的屌他们一顿;
2).如果只是自己出于技术探索拿出来探讨的话,根据我本人的经验可以有如下方案但不保证能取全;

 a).首先是锁定栏位
       前提是必须知道该栏位的一些信息,比如栏位属性或者中文注释名称等;然后用db2look 抽取全部表信息(建表语句)并保存到文件中,根据关键字(前提中的已知信息)检索出该栏位;然后到对应的表中去查找你需要的值;这种方法明显的缺陷就是比较容易产生遗漏,比如栏位备注可能在一个表中备注为A在另一个表中为B ,在一个表中属性为char另一个表中为varchar,而且抽取动作也不易实施因为要涉及到所有数据库的访问权限;
b).建议从业务逻辑入手,了解下这个栏位的具体含义以及产生过程,最好查到原始的系统录入页面(如果有的话),从后台代码中看下其最终保存到了哪个表中;

对于这种问题只能定位到具体的栏位而不具体的是数值来检索你需要的信息,你不可能把每个表的每个栏位数值都过滤一遍的去查找你需要的数值;而 且上面两中方法也都是泛泛的检索查找并不能确保查找的完备性;

收起
互联网服务 · 2017-08-29
youyouwoxin888youyouwoxin888IT顾问深圳市深賽爾股份有限公司
select * from sys.objects where id in(select id from sys.columns where name='字段')可以查询哪些表有这个字段显示全部

select * from sys.objects where id in(select id from sys.columns where name='字段')可以查询哪些表有这个字段

收起
金融其它 · 2017-08-29
mountainsunmountainsun数据库运维工程师吴江银行
如果只是根据字段的名称去查看哪些表中有这个字段的话,可以查看syscat.columns这个表或视图,当然了字段的名称得一样的。如果只是根据字段的值,比如说你上面说的10001,就没法查了。显示全部

如果只是根据字段的名称去查看哪些表中有这个字段的话,可以查看syscat.columns这个表或视图,当然了字段的名称得一样的。如果只是根据字段的值,比如说你上面说的10001,就没法查了。

收起
银行 · 2017-08-29
浏览2417

提问者

miomiki
系统运维工程师ENN

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-08-28
  • 关注会员:6 人
  • 问题浏览:4024
  • 最近回答:2017-09-01
  • X社区推广