Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Rekursywnie wyliczaj skoncentrowane uwagi w widoku Oracle DBA_DEPENDENCIES

Chcesz określić słowo kluczowe NOCYCLE po CONNECT BY:

tj.

SELECT NAME, 
       TYPE, 
       REFERENCED_NAME, 
       REFERENCED_TYPE 
  FROM DBA_DEPENDENCIES 
 WHERE OWNER='FOO' 
   AND NAME='VIEW_01' 
CONNECT BY NOCYCLE
  PRIOR REFERENCED_NAME = NAME;

Więcej informacji na temat NOCYCLE i słów kluczowych „CONNECT_BY_ISCYCLE” znajdziesz tutaj:http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm

i tutaj:http://download.oracle. com/docs/cd/B19306_01/server.102/b14200/pseudocolumns001.htm

Mam nadzieję, że to pomoże...

EDYCJA:Po komentarzach przegapiłeś klauzulę START WITH.

SELECT NAME, 
       TYPE, 
       REFERENCED_NAME, 
       REFERENCED_TYPE 
  FROM DBA_DEPENDENCIES 
 WHERE OWNER='FOO' 
 START WITH NAME='VIEW_01' 
CONNECT BY NOCYCLE
  PRIOR REFERENCED_NAME = NAME;

BTW, zachowanie OWNER='FOO' gdzie klauzula ogranicza wszelkie zależności zwracane tylko do obiektu FOO, dzięki czemu możesz przeoczyć zależności z innych schematów.

Edycja 2:Kluczem podstawowym tabeli widoku jest właściciel, nazwa więc wybór powinien zaczynać się od obu i łączyć się przez oba. Możesz użyć miejsca, w którym odfiltrujesz pożądane wyniki.

SELECT OWNER, NAME, TYPE,  
   REFERENCED_OWNER,
   REFERENCED_NAME, 
   REFERENCED_TYPE 
FROM DBA_DEPENDENCIES 
-- where referenced_type='TABLE'
START WITH owner = 'FOO' AND NAME='VIEW_01' 
CONNECT BY NOCYCLE
   PRIOR REFERENCED_NAME = NAME
   AND PRIOR REFERENCED_OWNER = OWNER;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuwanie wierszy z ograniczeniami klucza obcego

  2. Znajdź wszystkie wartości nieliczbowe w kolumnie w Oracle

  3. Oracle - dynamiczna nazwa kolumny w instrukcji select

  4. Połącz dwie tabele i znajdź nakładające się daty i luki

  5. Jak mogę uzyskać dostęp do Oracle z Pythona?