Вы можете использовать cross join
with t(test_type, h_level, hadoop) as
(
select '22RETGGEDGDD, RRMMNFNEDGDD','Control Directory 1','Interchange Control Header'
from dual union all
select '22RETGGEDGDD, RRMMNFNEDGDD','Control Directory 2','Interchange Control Header'
from dual union all
select '22RETGGEDGDD, RRMMNFNEDGDD','Control Directory 3','Interchange Control Header'
from dual
)
select distinct regexp_substr(test_type,'[^, ]+', 1, level ) as test_type,
t2.h_level, t2.hadoop
from t t1
cross join ( select h_level, hadoop from t ) t2
connect by level <= regexp_count(test_type,',' ) + 1
order by t2.h_level, test_type desc;
Демо