Db2如何查询一个scheam下所有表名包含某个字段的值

Db2如何查询一个scheam下所有表名包含某个字段的值,第1张

1.查询数据库中的所有数据库名:

SELECT Name FROM Master..SysDatabases ORDER BY Name

2.查询某个数据库中所有的表名:

SELECT Name FROM SysObjects Where XType='U' ORDER BY Name

这个只能在命令行上搜索,很难一条命令做到。下面是在一台aix上执行,linux是一样的,希望帮到你。

先su到数据库实例用户

#su - <instName>

设定一个环境变量,这个变量很重要,不设置的话,后面的命令没法做

$export DB2DBDFT=<dbname>

好了,我们连接数据库

$db2 connect to <dbname>

我们用一条循环语句达到你要的效果

$db2 -x list tables for all|egrep -v "SYSCAT|SYSIBM|SYSIBMADM|SYSSTAT"|awk '{print "db2 describe table "$2"."$1}'|while read cm

>do<回车>

>echo "start command: "$cm<回车>

>$cm|grep -w test<回车>

>done<回车>

思路就是用describe table循环列出表格的字段结构,然后用grep过滤而已。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10009930.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存