查找名称中包含字符串的列

Locating Columns that Contain a String in their Name

除了手动遍历整个数据库中的每个 table 模式之外,我如何生成所有 table 的列表,其中包含 [=11= 中包含字符串“email”的字段]?

例如,在 IBM DB2 中,我可以使用这样的查询来执行此操作:

select tabschema,tabname,colname
from syscat.columns
where upper(colname) LIKE UPPER('%email%')
order by tabname

如何在 Pervasive 13 中实现此目的?

我仍然愿意接受其他建议,但我这样做的方法是将数据库模式导出到 .sql 文本文件,然后我使用正则表达式 create table.*email 进行搜索该文件并找到所有包含名称中带有 email 的列的表。

这行得通,但我期待其他人的建议。

可以查询System Objects,使用:

SELECT f.Xf$Name, g.Xe$Name
FROM X$File f
INNER JOIN X$Field g ON g.Xe$File = f.Xf$Id
WHERE UPPER(g.Xe$Name) LIKE '%EMAIL%';