«используется» запрос в PL / SQL? - PullRequest
0 голосов
/ 02 ноября 2018

При просмотре, например, таблиц в Жаба доступна функция «Используется», чтобы показать вам, где используется эта таблица (поэтому, если на таблицу ссылается триггер, который будет показан Вот).

Как я могу сделать это вне Toad в простом старом SQL?

Мне особенно интересно узнать, где используются последовательности и таблицы.

Я просмотрел документацию для USER_TABLES, USER_TRIGGERS и USER_SEQUENCES, но, очевидно, понадобится нечто большее, чем просто выбор некоторых столбцов из мета таблицы.

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете использовать user_dependencies или all_dependencies

SELECT name AS dependant_object,
       type,
       owner object_owner 
FROM all_dependencies
 WHERE referenced_owner = user --Table owned by current user
 AND referenced_type = 'TABLE' AND referenced_name = 'EMPLOYEES';

Для последовательностей вы можете использовать referenced_type = 'SEQUENCE'

Другим вариантом является сканирование исходного кода пакетов / функций / процедур и триггеров.

SELECT *
  FROM user_source
 WHERE lower(text) like '%employees%';  --table name


SELECT *
  FROM user_source
 WHERE lower(text) like '%emp_seq.nextval%'; --sequence name

Но это не совсем надежно, так как таблицы вида employees_tmp также будут совпадать или emp_seq . nextval не совпадет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...