0

请任何人帮助我为 SQL 中的保留 XML 字符创建函数。下面我尝试了下面的功能,但它不适合我。

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;
4

1 回答 1

0

当你RETURN在函数中使用 a 时,函数会返回一些值并结束;这样,在您的函数中,只会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;
于 2019-03-21T11:25:15.157 回答