Я не понимаю, что это:
formula = 1*3
formula detail (1->value1, 2->value3, 3->value3)
на самом деле представляет. Какой первый ряд? Это строка, хранящаяся в какой-то таблице? Это строка хранится в переменной? Это полная строка или строка просто 1*3
(без formula =
)?
Что такое второй ряд? Те же сомнения, что и в первом.
В любом случае: если мы притворимся, что первая строка представляет строку, а вторая представляет ваше желание, а не какой-то код, то вложенная REPLACE
(то есть регулярных выражений вообще нет) выполняет работу:
SQL> create or replace function f_rep
2 (par_1 in varchar2, par_2 in varchar2, par_3 in varchar2)
3 return varchar2
4 is
5 l_str varchar2(200) := 'formula = 1*3';
6 begin
7 l_str := replace(replace(replace(l_str, '1', par_1),
8 '2', par_2),
9 '3', par_3);
10 return l_str;
11 end;
12 /
Function created.
SQL> select f_rep('value1', null, 'value3') result from dual;
RESULT
--------------------------------------------------------------------------------
formula = value1*value3
SQL>