I think you should create a function for this operation and use this function in your select query from table1, function should be like this;
create or replace function transform_data(p_input in varchar2) return varchar2
is
v_result varchar2(2000);
v_col_value varchar2(200);
begin
v_result := p_input;
for rec in (select * from table2)
loop
if instr(v_result, rec.Formula_Component) > 0 then
v_result := replace(v_result, rec.Formula_Component, rec.Actual_Component);
end if;
end loop;
return v_result;
end;