1

我想查找系统中所有存储过程中的任何地方是否都在使用表。是否有查询来获取 SP 的所有详细信息。

4

2 回答 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 回答