-- Author: Ahbaid Gaffoor - OCPdba.Net -- Date: Sunday 18th August 2002 -- File: proc_show_dependencies.sql -- Purpose: This procedure recursively examines DBA_DEPENDENCIES -- and prints a dependency tree for an object. -- -- Usage: exec show_dependencies('..'); -- -- Example: -- set serveroutput on -- begin -- show_dependencies('SCOTT.EMPLOYEE.TABLE'); -- end; -- / -- -- Notes: Create as SYS and create a public synonym for the procedure create or replace procedure show_dependencies(objectstr varchar2, plevel number := 0) as fowner varchar2(30); fname varchar2(30); ftype varchar2(30); cursor c1 (f1 varchar2, f2 varchar2, f3 varchar2) is select owner, name, type from dba_dependencies where referenced_owner = f1 and referenced_name = f2 and referenced_type = f3; c1var c1%ROWTYPE; begin fowner := substr(objectstr,1,instr(objectstr,'.',1,1)-1); fname := substr(objectstr,instr(objectstr,'.',1,1)+1,instr(objectstr,'.',1,2)-instr(objectstr,'.',1,1)-1); ftype := substr(objectstr,instr(objectstr,'.',1,2)+1); open c1(fowner,fname,ftype); loop fetch c1 into c1var; exit when c1%NOTFOUND; dbms_output.put_line(lpad('=',plevel+2,'=')||c1var.owner||'.'||c1var.name||'-'||c1var.type); show_dependencies(c1var.owner||'.'||c1var.name||'.'||c1var.type,plevel+1); end loop; close c1; end; / show errors grant execute on show_dependencies to public; create public synonym show_dependencies for show_dependencies;