This list was selected with the following SQL statement:
select
replace(a.table_name, 'V_$', 'V$'),
max(case when a.column_name in ('PLAN_HASH_VALUE', 'SQL_PLAN_HASH_VALUE') then a.column_name end ) name_plan_hash,
max(case when b.column_name in ('FULL_PLAN_HASH_VALUE', 'SQL_FULL_PLAN_HASH_VALUE') then b.column_name end) name_full_plan_hash
from
dba_tab_columns a join
dba_tab_columns b on a.table_name = b.table_name
where
a.table_name like 'V\_$%' escape '\' and
(
a.column_name in ( 'PLAN_HASH_VALUE', 'SQL_PLAN_HASH_VALUE') or
b.column_name in ('FULL_PLAN_HASH_VALUE', 'SQL_FULL_PLAN_HASH_VALUE')
)
group by
a.table_name
order by
a.table_name;
See also
A noteable table that doesn't have a %plan_hash_value column is the plan_table.