Когда вы используете RETURN
в функции, функция вернет некоторое значение и завершится;таким образом, в вашей функции будет запущен только первый replace
, а приведенный ниже код никогда не будет выполнен.
Это простой способ отредактировать его:
create or replace function escape_char(p_text varchar2) return varchar2 is
vRetVal varchar2(100);
begin
vRetVal := replace(p_text, '&','&');
vRetVal := replace(vRetVal, '<','<');
vRetVal := replace(vRetVal, '>','>');
vRetVal := replace(vRetVal, '''',''');
vRetVal := replace(vRetVal, '"','"');
--
return vRetVal;
end;