无效的 XML 字符错误 - 如何从 VARCHAR2 数据库列中查找无效字符?

问题描述

这里是 Oracle 新手。

对于打印到报告上的 XML 数据,我收到此错误“字符引用“”是无效的 XML 字符”。 导致问题的 XML 数据来自数据库中的 VARCHAR2 数据列。 我已经过滤掉了该列,现在我想查看记录以找到此无效字符在哪条记录中,并编写一条更新语句,用有效字符替换无效字符。 我不知道该怎么做。 有没有我可以用 SELECT 语句编写的正则表达式? 有人可以帮我吗?

谢谢!

解决方法

要确定哪些条目具有要消除的字符,您可以在该列中搜索该字符

select colname 
  from tabname 
 where instr(colname,chr(56256)) > 0;

您可以用更新语句替换:

update tablname
   set colname = replace(colname,chr(56256),'replacementstring')
 where instr(colname,chr(56256)) > 0;