SELECT owner, object_type, object_name, parent_statement_type, line, col, text
FROM plscope_identifiers
WHERE parent_statement_type IN ('SELECT', 'INSERT', 'UPDATE', 'DETETE', 'MERGE')
AND type = 'FUNCTION'
AND usage = 'CALL'
AND owner = USER
ORDER BY owner, object_type, object_name, line, col;
OWNER OBJECT_TYPE OBJECT_NAME PARENT_ LINE COL TEXT
------- ------------ ------------ ------- ---- ---- -----------------------------------------------------
PLSCOPE PACKAGE BODY ETL INSERT 139 33 SELECT deptno, dname, etl.sal_of_dept(deptno)
PLSCOPE PROCEDURE MY_PROCEDURE SELECT 11 11 SELECT my_function1 ()
PLSCOPE PROCEDURE MY_PROCEDURE SELECT 15 15 AND my_function2 () = 0
PLSCOPE PROCEDURE MY_PROCEDURE SELECT 16 27 AND n = (SELECT my_function1 () FROM DUAL);
PLSCOPE PROCEDURE MY_PROCEDURE UPDATE 24 15 SET n = my_function2 ()
Enhance the plscope_identifiers view to allow analysis as shown by @stevenfeuerstein's find-function-calls-in-sql.pls script. The following query will retrieve all SQL statements calling a function:
The following result is expected when @stevenfeuerstein's
my_procedureis installed in schemaplscope: