W
What objects are used/referenced in selected object? You can explore user_dependencies view in latest documentation.
SELECT d.referenced_type, LPAD(' ', (LEVEL - 1) * 2) || d.referenced_name AS referenced_name FROM user_dependencies d WHERE d.referenced_owner = USER CONNECT BY NOCYCLE d.name = PRIOR d.referenced_name AND d.type = PRIOR d.referenced_type START WITH d.name = '&OBJECT_NAME' --AND d.type = '&OBJECT_TYPE' ORDER SIBLINGS BY d.referenced_name;
SELECT d.referenced_type, LISTAGG(d.referenced_name, ', ') WITHIN GROUP (ORDER BY d.referenced_name) AS referenced_names FROM ( SELECT DISTINCT d.referenced_type, d.referenced_name FROM user_dependencies d WHERE d.referenced_owner = USER CONNECT BY NOCYCLE d.name = PRIOR d.referenced_name AND d.type = PRIOR d.referenced_type START WITH d.name = '&OBJECT_NAME' --AND d.type = '&OBJECT_TYPE' ) d GROUP BY d.referenced_type ORDER BY 1;
Who is using/calling selected object?
SELECT DISTINCT d.referenced_type, d.referenced_name FROM user_dependencies d WHERE d.referenced_owner = USER CONNECT BY NOCYCLE PRIOR d.name = d.referenced_name AND PRIOR d.type = d.referenced_type START WITH d.referenced_name = '&OBJECT_NAME' --AND d.referenced_type = '&OBJECT_TYPE' ORDER BY 1, 2;
Source code
And if your code is compiled with identifiers, then you can explore depencencies in depth.
WITH z AS ( SELECT i.line, i.col, i.usage, i.type, i.usage_id, i.usage_context_id, i.name, i.signature FROM user_identifiers i WHERE i.object_name = '&OBJECT_NAME' --AND i.object_type = '&OBJECT_TYPE' ) SELECT LEVEL AS depth, LPAD(' ', (LEVEL - 1) * 2) || z.name AS path, z.usage, z.line, z.col, z.type, z.name FROM z CONNECT BY NOCYCLE z.usage_context_id = PRIOR z.usage_id START WITH z.usage_context_id = 0 ORDER SIBLINGS BY z.line, z.col;
Comments
Post a Comment