在DB2 for i上,搜索列,以列表形式返回表名

Jay*_*arr 3 sql db2 squirrel-sql ibm-midrange

我仍然有点像菜鸟,所以请原谅这个问题是否有点明显.我确实在寻找答案,但要么无法理解我找到的答案如何应用,要么根本找不到答案.

我在DB2 for i服务器上有一个庞大的数据库,我通过SQLExplorer(基于Squirrel SQL)使用SQL访问它.这些表格记录很差,第一项业务就是弄清楚如何找到自己的方式.

我想写一个简单的查询来执行此操作:

1)允许我搜索整个数据库,查找包含名为"备注"(包含字段描述)的列的表.

2)然后我想让它在该列中搜索关键字.

3)我希望有一个表中返回,其中包括名称包含关键字(只是名称的表,我可以看一下表按字母顺序后,看看里面,如果我需要.)

我需要这个搜索超级轻量级​​,我希望我描述的概念能实现这一目标.任何占用大量资源的东西都可能会激怒服务器的系统管理员.

只是为了表明我已经尝试过(而且我是一个完整的菜鸟),这就是我迄今为止所拥有的.

SELECT *
FROM <dbname>
WHERE Remarks LIKE '<keyword>'
Run Code Online (Sandbox Code Playgroud)

随意嘲笑,我告诉你我是个白痴:-).

有帮助吗?或许至少可以推动正确的方向?

PS - 我似乎无法在SQLExplorer中找到搜索功能,如果有人知道我是否可以使用简单的搜索或过滤器来实现同样的目标......这将是很棒的.

jam*_*man 6

您可以查询系统目录以标识表:

SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME 
FROM QSYS2.SYSCOLUMNS WHERE UPPER(DBILFL) = 'REMARKS'
Run Code Online (Sandbox Code Playgroud)

然后分别查询每个表:

SELECT * FROM TABLE_SCHEMA.TABLE_NAME WHERE Remarks LIKE '%<keyword>%'
Run Code Online (Sandbox Code Playgroud)

有关模式表达式的详细信息,请参阅LIKE谓词.