在db2中如何查找其中包含给定文本的所有存储过程

时间:2013-02-26 10:55:41

标签: sql stored-procedures db2

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

2 个答案:

答案 0 :(得分:4)

您可以使用SYSCAT.TABDEP和SYSCAT.ROUTINEDEP系统目录视图。

对于动态SQL语句中的表,即动构建和执行的表,您可以使用

select routinename,text from syscat.routines where language='SQL' and locate('<table-name>',text)>0

HTH

Sathyaram

答案 1 :(得分:0)

对于我们特有的DB2风格,接受的答案对我没有用,但它让我朝着正确的方向前进。这是我写的查询,它允许我在给定的模式中搜索sprocs:

SELECT ROUTINE_NAME, ROUTINE_DEFINITION FROM sysibm.routines 
WHERE SPECIFIC_SCHEMA='<YourSchemaName>' 
    AND ROUTINE_DEFINITION LIKE '<YourSearchText>%'

用适当的值替换YourSchemaName和YourSearchText。