我试图找出db2中包含特定列的所有存储过程。我一直想做这样的事,但是没有 syscat.colname 在 syscat.procedures .
syscat.colname
syscat.procedures
select * from syscat.procedures where syscat.colname like '%FLAG%'
你们有什么想法吗?谢谢您。
5t7ly7z51#
您只需要检查过程文本是否提到列名。对于最新版本的db2forlinux/unix/windows(db2luw),可以尝试以下操作:(将colname替换为您要查找的名称):
select cast(rtrim(procschema)|'.'||rtrim(procname) as varchar(128) ) as procname from syscat.procedures where dbms_lob.instr(text , varchar('COLNAME'), 1) > 0 order by 1 with ur;
请注意,搜索是区分大小写的,因此如果需要区分大小写,则需要进行调整。此查询不能保证该列在sql中用于insert/update/delete/select—例如,列名可能在备注中引用或是变量名的一部分。其他目录表包含静态sql包的依赖对象信息。
1条答案
按热度按时间5t7ly7z51#
您只需要检查过程文本是否提到列名。
对于最新版本的db2forlinux/unix/windows(db2luw),可以尝试以下操作:(将colname替换为您要查找的名称):
请注意,搜索是区分大小写的,因此如果需要区分大小写,则需要进行调整。
此查询不能保证该列在sql中用于insert/update/delete/select—例如,列名可能在备注中引用或是变量名的一部分。其他目录表包含静态sql包的依赖对象信息。