Resolving Queries into a List of `object name.field`
Oracle 12c provides the procedure DBMS_UTILITY.EXPAND_SQL_TEXT.

EXPAND_SQL_TEXT Procedure

If you have a query, it can expand its text to involve th base tables and its columns.

Example:

SQL&gt; create table t1 (C1 number, c2 number);

Table created.

SQL&gt; create view v1 as select * from t1;

View created.

SQL&gt; create or replace view v1 as select c1 as c3, c2 as c4 from t1;

View created.

SQL&gt; create or replace view v2 as select * from t1;

View created.


To find the tables and columns used for select * from v2:

SET SERVEROUTPUT ON 
DECLARE
  l_clob CLOB;
BEGIN
  DBMS_UTILITY.expand_sql_text (
    input_sql_text  =&gt; 'SELECT * FROM v2',
    output_sql_text =&gt; l_clob
  );

  DBMS_OUTPUT.put_line(l_clob);
END;
/


Output is:

SELECT "A1"."C1" "C1","A1"."C2" "C2" FROM  (SELECT "A2"."C1" "C1","A2"."C2" "C2"
FROM SYS."T1" "A2") "A1"


The rest is up to you though.