当前位置:  开发笔记 > 前端 > 正文

PL/SQL转换特殊字符

如何解决《PL/SQL转换特殊字符》经验,为你挑选了0个好方法。

我正在使用填充表中数据的简短PL/SQL函数创建一个简单的XML 1.0文件.

表中的数据还包含HTML字符,如<>,&等等.对于这些特殊字符,我构建了一个简短的搜索和替换函数,如下所示:

 newXmlString := REPLACE(xmlString,    '&',  '&' );
 newXmlString := REPLACE(newXmlString, '\',  '' );
 newXmlString := REPLACE(newXmlString, '<',  '<' );
 newXmlString := REPLACE(newXmlString, '>',  '>' );
 newXmlString := REPLACE(newXmlString, '"',  '"' );
 newXmlString := REPLACE(newXmlString, '''', ''' );

现在表中有更多数据,因为特殊的控制字符(https://en.wikipedia.org/wiki/Control_character),XML文件无法验证:

ETX(文字结束)

SYN(同步空闲)

注意:并非每个控制字符都会破坏XML文件的验证!仍然可以进行换行或回车.

当然我现在也可以搜索和替换它们,例如:

newXmlString := REPLACE(newXmlString, chr(3), '' ); -- ETX end of text

但是,是否有一个内置函数或类似于我可以与PL/SQL一起使用而无需列出和搜索+替换它们的库?

更新1

我也尝试使用该函数,dbms_xmlgen.getxml但是这个函数抛出一个错误,因为'转义字符转换的特殊字符失败了.'+

更新2

我尝试使用REGEXP_REPLACE(STRING_VALUE,'[[:cntrl:]]')哪个会起作用,但这也会删除我们想要保留的换行符,也不会影响XML文件的验证.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有