В DB2 — есть ли какой-либо оператор SQL, который при выполнении возвращает список хранимых процедур, ссылающихся на имя таблицы.
DB2, хранимые процедуры, ссылающиеся на имя таблицы
comment
Какая версия DB2 и платформа?
- person mustaccio   schedule 31.07.2015
comment
Версия: DB2 v9.5.0.8
- person Kris   schedule 31.07.2015
comment
... обратите внимание, что любой возвращенный список будет правильным, только если вы не реализовали процедуры определенным образом; например, выбор таблицы из syscat для запроса сделает ссылки непрозрачными...
- person Clockwork-Muse   schedule 02.08.2015
comment
Возможный дубликат Как в db2 найти все хранимые процедуры, содержащие заданный текст
- person Clockwork-Muse   schedule 02.01.2019
Ответы (2)
Есть вид каталога 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
.
person
mustaccio
schedule
31.07.2015
Для этого можно использовать представление каталога SYSCAT.ROUTINEDEP:
select specificname, routineschema from syscat.routinedep where btype='F' and bschema='yourschema' and bname='yourtable'
Это вернет все подпрограммы (включая хранимые процедуры), зависящие от этой ссылочной таблицы, указанной в yourschema.yourtable.
person
data_henrik
schedule
31.07.2015