我想查找系统中所有存储过程中的任何地方是否都在使用表。是否有查询来获取 SP 的所有详细信息。
问问题
14162 次
2 回答
6
您可以使用 SYSCAT.TABDEP 和 SYSCAT.ROUTINEDEP 系统目录视图。
对于动态 SQL 语句中动态构建和执行的表,您可以使用
select routinename,text from syscat.routines where language='SQL' and locate('<table-name>',text)>0
高温高压
沙迪亚拉姆
于 2013-02-26T11:12:59.770 回答
2
对于我们特殊的 DB2 风格,接受的答案对我不起作用,但它让我朝着正确的方向前进。这是我编写的查询,它允许我在给定模式中搜索存储过程:
SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM sysibm.routines
WHERE SPECIFIC_SCHEMA='<YourSchemaName>'
AND ROUTINE_DEFINITION LIKE '<YourSearchText>%'
将 YourSchemaName 和 YourSearchText 替换为适当的值。
于 2018-01-08T17:56:53.737 回答