Как проверить, является ли триггер недействительным?

StackOverflow https://stackoverflow.com/questions/120900

  •  02-07-2019
  •  | 
  •  

Вопрос

Я работаю над базами данных, в которых есть движущиеся таблицы, автоматически создаваемые какими-то малоизвестными инструментами.Кстати, нам приходится отслеживать изменения информации в таблице через некие триггеры.И, конечно, бывает, что какие-то изменения в структуре таблицы нарушали какие-то триггеры, например, удаляя столбец или меняя его тип.

Итак, вопрос:Есть ли способ запросить метаданные Oracle, чтобы проверить, не сломаны ли некоторые триггеры, и отправить отчет в службу поддержки?

user_triggers предоставляет все триггеры и сообщает, включены они или нет, но не указывает, действительны ли они по-прежнему.

Это было полезно?

Решение

SELECT *
FROM   ALL_OBJECTS
WHERE  OBJECT_NAME = trigger_name
AND    OBJECT_TYPE = 'TRIGGER'
AND    STATUS <> 'VALID'

Другие советы

Посмотрите на SYS.OBJ$, в частности на столбец STATUS.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top