Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Liệt kê đệ quy các đồng thời của chế độ xem DBA_DEPENDENCIES của Oracle

Bạn muốn chỉ định từ khóa NOCYCLE sau khi CONNECT BY:

tức là

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

Có thêm thông tin về NOCYCLE và từ khóa "CONNECT_BY_ISCYCLE" tại đây: http://www.dba -oracle.com/t_advanced_sql_connect_by_loop.htm

và tại đây: http://download.oracle. com / docs / cd / B19306_01 / server.102 / b14200 / pseudocolumns001.htm

Hy vọng nó sẽ giúp ...

CHỈNH SỬA:Sau khi nhận xét, bạn đã bỏ qua điều khoản BẮT ĐẦU VỚI.

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, giữ OWNER ='FOO' trong đó mệnh đề giới hạn bất kỳ phần phụ thuộc nào được trả về chỉ đối tượng của FOO, do đó bạn có thể bỏ lỡ các phần phụ thuộc từ các lược đồ khác.

Chỉnh sửa 2:Khóa chính của một bảng xem là chủ sở hữu, tên do đó lựa chọn phải bắt đầu bằng cả hai và kết nối bằng cả hai. Bạn có thể sử dụng nơi để lọc ra các kết quả mong muốn.

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. Tôi muốn di chuyển Oralce DB sang Amazon Redshift với AWS SCT

  2. Câu lệnh FORALL với Mệnh đề ràng buộc INDICES-OF trong Cơ sở dữ liệu Oracle

  3. CHỌN sử dụng Mệnh đề UNION

  4. Oracle TO_DATE KHÔNG ném lỗi

  5. Con trỏ trong thủ tục trả về nhiều giá trị hơn truy vấn