【发布时间】:2017-03-22 10:38:15
【问题描述】:
我正在 Oracle 11g 数据库上使用 SQL 生成 XML 文档。但是我遇到了数据库字段的问题,因为标题字段包含许多字符,其中一些 XML 认为是无效的,我试图使用下面的语句来捕获尽可能多的并将它们转换为 NULL。
REGEXP_REPLACE (title, '’|£|&|*|@|-|>|/|<|;|\', '', 1, 0, 'i') as title
我仍然遇到解析问题,所以我知道我错过了更多无效字符。我知道它在该字段上失败了,因为当我将该字段更改为字符串“标题”(如下所示)时,文档被解析并且工作正常。
REGEXP_REPLACE ('title', '’|£|&|*|@|-|>|/|<|;|\', '', 1, 0, 'i') as title
我正在使用 XML 版本 '1.0" encoding="UTF-8',有没有一种简单的方法可以解决这个问题,或者我是否必须找到失败的记录,这些记录可能来自 200 万条记录。标题字段包含来自世界各地的歌曲标题,我可以使用 REGEXP_REPLACE 来获取 char(32) 之间的字符范围,并且可以说 char(255) 任何不在此范围内的字符替换为 NULL。
或者是否有其他解决方案。
先谢谢各位了
【问题讨论】:
标签: sql xml oracle parsing oracle11g