我想查找是否在系统中的所有存储过程中的任何位置使用了表。 是否有查询来获取SP的所有详细信息。
答案 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。