Поиск имен триггеров, содержащих определенное имя переменной в Oracle - PullRequest
1 голос
/ 17 ноября 2011

Я пытаюсь найти имена триггеров, использующих переменную trig_tab. Я попробовал приведенный ниже запрос без функции dbms_lob, и он дал мне

ORA-00997: незаконное использование типа данных LONG

ошибка.

Итак, я попытался использовать функцию dbms_lob.instr, но все равно выдает мне ту же ошибку.

Поле Trigger_body имеет длинный тип данных. Использование базы данных Oracle 10g. Как мне заставить это работать.

SELECT *
FROM   dba_triggers a
WHERE  owner = 'BOR'
       AND table_name = 'MAP_VIEW'
       AND dbms_lob.Instr(a.trigger_body, 'mv_pkg.trig_tab') > 0
ORDER  BY status,
          trigger_name; 

1 Ответ

3 голосов
/ 17 ноября 2011

Рассмотрим запрос dba_source / user_source для поиска вхождения токена в источнике

SELECT name,
       line
FROM   dba_source
WHERE  owner = 'BOR'
       AND TYPE = 'TRIGGER'
       AND Lower(TEXT) LIKE '%trig_tab%'
ORDER  BY name; 

SELECT name,
       line
FROM   user_source
WHERE  TYPE = 'TRIGGER'
       AND Lower(TEXT) LIKE '%trig_tab%'
ORDER  BY name; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...