首页 > 解决方案 > 如何在sql中为保留的xml字符创建函数

问题描述

请任何人帮助我为 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;

标签: xmlcharacteroracle-sqldeveloperreserved

解决方案


当你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;

推荐阅读