---特殊字符转换

function process_xml(old_xml in varchar2) return varchar2 as

new_xml varchar2(1000);

begin

select replace(old_xml, '<', '&lt;') into new_xml from dual;

select replace(new_xml, '>', '&gt;') into new_xml from dual;

select replace(new_xml, '&', '&amp;') into new_xml from dual;

select replace(new_xml, '''', '&apos;') into new_xml from dual;

select replace(new_xml, '"', '&quot;') into new_xml from dual;

SELECT regexp_replace(new_xml, '^(\W)*|(\W)*$', '')

INTO new_xml

FROM dual;

return new_xml;

exception

when others then

return 'ERROR!';

end process_xml;