DBA_DEPENDENCIES

Dependencies to and from objects

Name Datatype Length Mandatory Comments
OWNER VARCHAR2 (30) Yes Owner of the object
NAME VARCHAR2 (30) Yes Name of the object
TYPE VARCHAR2 (17)   Type of the object
REFERENCED_OWNER VARCHAR2 (30)   Owner of referenced object (remote owner if remote object)
REFERENCED_NAME VARCHAR2 (64)   Name of referenced object
REFERENCED_TYPE VARCHAR2 (17)   Type of referenced object
REFERENCED_LINK_NAME VARCHAR2 (128)   Name of dblink if this is a remote object
DEPENDENCY_TYPE VARCHAR2 (4)    

Usage:

selects from the dependency$ table instead of dba_dependencies. The dba_dependencies view is slow.


declare
  procedure show_dependencies( p_object_name  IN dba_objects.object_name%type
                             , p_object_type  in dba_objects.object_type%type
                            , p_owner        in dba_objects.owner%type) is
    cursor cur_depend(n_object_id  IN dba_objects.object_id%type)
    is select d_obj# object_id
     ,      object_name
     ,      object_type
     ,      owner
     from sys.dependency$
     ,    dba_objects
     where p_obj# = n_object_id
     and d_obj# = object_id
     order by owner, object_name, object_type;
--
    cursor cur_depend2(n_object_id  IN dba_objects.object_id%type)
    is select p_obj# 
     ,      object_name
     ,      object_type
     ,      owner
     from sys.dependency$
     ,    dba_objects
     where d_obj# = n_object_id
     and p_obj# = object_id
     order by owner, object_name, object_type;
     
     v_object_id   dba_objects.object_id%type;
   begin
      select object_id
      into v_object_id
      from dba_objects
      where object_name = p_object_name
      and object_type   = p_object_Type
      and owner         = p_owner;
      
      dbms_output.put_line('The ' ||p_object_name ||' '
                      ||lower(p_object_type)
                      ||' is referenced by the following objects:');
      for d_rec in cur_depend(v_object_id) loop
        dbms_output.put_line(d_rec.owner||'.'||d_rec.object_name||' ('||d_rec.object_type||')');
      end loop;
      dbms_output.put_line('--------------------');

      dbms_output.put_line('The ' ||p_object_name ||' '||lower(p_object_type)||' references:');
      for d_rec in cur_depend2(v_object_id) loop
        dbms_output.put_line(d_rec.owner||'.'||d_rec.object_name||' ('||d_rec.object_type||')');
      end loop;
      dbms_output.put_line('--------------------');
    
   end show_dependencies;
begin
 show_dependencies('MY-TABLE', 'TABLE', 'ARU');
 show_dependencies('MY-VIEW';, 'VIEW', 'ARU');
 show_dependencies('MY-PACKAGE', 'PACKAGE', 'ARU');
end;
/