Как создать функцию для зарезервированных символов XML в SQL - PullRequest
0 голосов
/ 21 марта 2019

Пожалуйста, помогите мне создать функцию для зарезервированного символа XML в SQL. Ниже я попробовал функцию ниже, но она не работает для меня.

function escape_char(p_text varchar2) return varchar2 is
begin
     return (replace(p_text, '<','&lt;'));
     return (replace(p_text, '>','&gt;'));
     return (replace(p_text, '&','&amp;'));
     return (replace(p_text, '''','&apos;'));
     return (replace(p_text, '"','&quot;'));
end;

1 Ответ

0 голосов
/ 21 марта 2019

Когда вы используете RETURN в функции, функция вернет некоторое значение и завершится;таким образом, в вашей функции будет запущен только первый replace, а приведенный ниже код никогда не будет выполнен.

Это простой способ отредактировать его:

create or replace function escape_char(p_text varchar2) return varchar2 is
    vRetVal     varchar2(100);
begin
     vRetVal := replace(p_text, '&','&amp;');
     vRetVal := replace(vRetVal, '<','&lt;'); 
     vRetVal := replace(vRetVal, '>','&gt;');
     vRetVal := replace(vRetVal, '''','&apos;');
     vRetVal := replace(vRetVal, '"','&quot;');
     --
     return vRetVal;
end;
...