Skip to content

Add parent_statement_type column to plscope_identifiers #2

@PhilippSalvisberg

Description

@PhilippSalvisberg

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:

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;

The following result is expected when @stevenfeuerstein's my_procedure is installed in schema plscope:

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 ()  

Metadata

Metadata

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions