我在数据库中有一个Blob列,列的名称是energy。 查询是:
select
CONVERT(xml,(CONVERT(varbinary(max),energy)))
from tableenergy
但是我收到错误“ XML解析:非法xml字符”
我用TOAD检查ACII中XML具有类似以下内容的列 “ Name =” Mois pr ?? c ?? dent“
如果我使用UTF 8签入TOAD看起来更好 “名称=“ Moisprécédent”
我想进行查询以避免该错误,我想这是因为转换是通过ASCII完成的,如何在查询中转换XML中的BLOB列?
答案 0 :(得分:0)
您需要将xml转换为UTF 16或Unicode,xml解析器无法读取变音符号(即éè)。这些符号不在ASCII图表中,请尝试以下操作:
select value(x).getBlobVal(energy_charset_id('AL32UTF8')) from tableenergy
答案 1 :(得分:0)
由于我们不知道您使用的是哪种数据库(Oracle,mySQL,Postgre等),因此这是一个常规解决方案。
为了使转换真正起作用,您需要确保您没有使用XML解析功能无法理解的任何值。
尝试一下:
gl_Position.z = gl_Position.z - offset * 2.0 * gl_Position.w;