Find out where stored proc is called from - [Oracle] -
how can find out stored procedure foo called (names of calling procedures)? i'm trying find out in type of situations foo called, , seems cumbersome query select * user_source because there string literals contain foo.
regards, robotron
you can use all_dependencies view:
select * all_dependencies referenced_owner = <username> , referenced_name = 'foo'; this return objects directly use procedure foo. if procedure uses foo inside dynamic sql statement, however, you'll either have parse source, or try adding logging call stack inside foo procedure (in real application, logged table instead of dbms_output):
create or replace procedure foo begin dbms_output.put_line('foo'); dbms_output.put_line(dbms_utility.format_call_stack()); end; create procedure bar begin dbms_output.put_line('bar'); foo(); end; begin bar(); end; output:
bar foo ----- pl/sql call stack ----- object line object handle number name 00000003e180a118 4 procedure schmitt.foo 00000003e180e140 4 procedure schmitt.bar 00000003e17fa388 2 anonymous block however, work if code that's using function called :-)
Comments
Post a Comment