【问题标题】:DB2, Stored Procedures that are refering to a table nameDB2,引用表名的存储过程
【发布时间】:2015-07-31 15:59:43
【问题描述】:

在 DB2 中 - 是否有任何 SQL 语句,当我执行时,将返回引用表名的存储过程列表。

【问题讨论】:

标签: db2 procedure refer


【解决方案1】:

有目录查看SYSCAT.ROUTINEDEP

SELECT R.ROUTINESCHEMA, R.ROUTINENAME 
FROM SYSCAT.ROUTINEDEP D, SYSCAT.ROUTINES R
WHERE D.ROUTINESCHEMA = R.ROUTINESCHEMA AND D.SPECIFICNAME = R.SPECIFICNAME 
AND D.BTYPE IN ('T','V','A') 
AND D.BSCHEMA = 'MYTABLESCHEMA' AND D.BNAME = 'MYTABLENAME'

请记住,动态 SQL 引用的表不会出现在 SYSCAT.ROUTINEDEP 中。

【讨论】:

    【解决方案2】:

    您可以为此使用目录视图 SYSCAT.ROUTINEDEP:

    select specificname, routineschema from syscat.routinedep where btype='F' and bschema='yourschema' and bname='yourtable'

    这将返回依赖于 yourschema.yourtable 标识的引用表的所有例程(包括存储过程)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 2014-10-26
      • 2019-11-10
      • 2015-06-09
      相关资源
      最近更新 更多