📅  最后修改于: 2023-12-03 15:03:23.466000             🧑  作者: Mango
在 Oracle 数据库中, all_dependencies
视图提供了表、视图、程序包、过程等对象之间的依赖关系信息。该视图可以帮助程序员在编写 SQL 语句或 PL/SQL 代码时,了解当前对象的依赖关系,从而方便找到相关联的对象、识别依赖循环等问题。
可以使用以下 SQL 语句查询 all_dependencies
视图:
SELECT *
FROM all_dependencies
WHERE referenced_name = '<OBJECT_NAME>';
其中,<OBJECT_NAME>
是要查询依赖关系的对象名称,可以是表、视图、程序包、过程等。
如果想要查询所有对象之间的依赖关系,可以省略 WHERE
子句。
假设有一个表 orders
:
CREATE TABLE orders (
order_id NUMBER,
customer_id NUMBER,
order_date DATE,
total_price NUMBER
);
现在想要查询该表的所有依赖关系,可以执行以下 SQL 语句:
SELECT *
FROM all_dependencies
WHERE referenced_name = 'ORDERS';
执行结果如下:
|OWNER|NAME|TYPE|REFERENCED_OWNER|REFERENCED_NAME|REFERENCED_TYPE|DEPENDED_OWNER|DEPENDED_NAME|DEPENDED_TYPE|DEPENDENCY_TYPE| |---|---|---|---|---|---|---|---|---|---| |SCOTT|ORDERS|TABLE| | | |SCOTT|ORDERS|TABLE|HARD|
可以看到,该表没有依赖任何其他对象。如果查询所有对象之间的依赖关系,可以省略 WHERE
子句:
SELECT *
FROM all_dependencies;
all_dependencies
视图列出了所有类型对象之间的依赖关系,包括:表、视图、函数、存储过程、包等。dba_dependencies
视图。SELECT ANY TABLE
、SELECT ANY DICTIONARY
等。