Zapytanie, aby przeszukać wszystkie pakiety dla tabeli i / lub kolumny
Czy istnieje zapytanie, które mogę uruchomić, aby przeszukać wszystkie pakiety, aby sprawdzić, czy konkretna tabela i / lub kolumna jest używana w pakiecie? Istnieje zbyt wiele pakietów, aby otworzyć każdy z nich i znaleźć wartości, których szukam.
4 answers
Możesz to zrobić:
select *
from user_source
where upper(text) like upper('%SOMETEXT%');
Alternatywnie, programista SQL ma wbudowany raport, aby to zrobić pod:
View > Reports > Data Dictionary Reports > PLSQL > Search Source Code
Dokumenty 11g dla USER_SOURCE są tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-30 16:19:54
Możesz użyć widoków *_DEPENDENCIES
, na przykład:
SELECT owner, NAME
FROM dba_dependencies
WHERE referenced_owner = :table_owner
AND referenced_name = :table_name
AND TYPE IN ('PACKAGE', 'PACKAGE BODY')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-31 16:07:24
Czasami kolumna, której szukasz, może być częścią nazwy wielu innych rzeczy, które cię nie interesują.
Na przykład ostatnio Szukałem kolumny o nazwie "BQR" , która również stanowi część wielu innych kolumn ,takich jak" BQR_OWNER"," PROP_BQR", itp.
Chciałbym więc mieć pole wyboru, które procesory tekstu muszą wskazywać "tylko całe słowa".
Niestety LIKE nie ma takiej funkcjonalności, ale REGEXP_LIKE może pomóc.
SELECT *
FROM user_source
WHERE regexp_like(text, '(\s|\.|,|^)bqr(\s|,|$)');
To jest Wyrażenie regularne, aby znaleźć tę kolumnę i wykluczyć inne kolumny z "BQR" jako część nazwy:
(\s|\.|,|^)bqr(\s|,|$)
Wyrażenie regularne pasuje do white-space (\s), lub ( / ) period (.), lub ( | ) przecinek (,), lub ( / ) start-of-line ( ^ ), a następnie "bqr", a następnie white-space, comma lub end-of-line ($).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-22 18:13:03
Nawiasem mówiąc, jeśli chcesz dodać inne znaki, takie jak " ("lub")", ponieważ kolumna może być używana jako " UPPER (bqr)", to opcje te można dodać do listy znaków przed i po.
(\s|\(|\.|,|^)bqr(\s|,|\)|$)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-22 18:24:57