【发布时间】:2018-06-19 21:00:29
【问题描述】:
我正在尝试使用 db2 xmltable 函数在 xml 标头中使用 utf-8 解析和 xml 字符串。如果我删除 utf-8 一切运行良好,但如果我把它留在我得到 SQLSTATE 2200M 错误。我错过了什么?我应该注意到我在 IBM i v7.2 和 7.3 上运行它
select * from xmltable(XMLNamespaces( DEFAULT 'IBA/FIXML-5-0-SP2'),
'$d/FIXML/MktDataInc/Inc/SprdBnchmkCurve'
passing xmlparse(document
'<?xml version="1.0" encoding="utf-8" ?>
<FIXML xmlns="IBA/FIXML-5-0-SP2" v="FIX.5.0SP2" xv="167" cv="IBA"
s="2013-10-14">
<MktDataInc TrdDt="2018-06-19">
<Inc UpdtAct="0" Typ="3" Tm="10:55:05">
<SprdBnchmkCurve Ccy="USD" Name="LIBOR" Point="12M" Px="2.7625"
PxTyp="24" />
</Inc>
<Inc UpdtAct="0" Typ="3" Tm="10:55:05">
<SprdBnchmkCurve Ccy="USD" Name="LIBOR" Point="1M" Px="2.08788"
PxTyp="24" />
</Inc> </MktDataInc>
</FIXML> ' ) as "d"
columns POINT char(2) path '@Point',
cur_val char(10) path '@Px'
) x
【问题讨论】:
-
您发布的代码对我来说运行良好(在 Db2 11.1.3.3 上),无论是来自 CLP 还是来自 Data Studio。我不确定你的问题是什么。我确实得到了
SQL0445W Value "12M" has been truncated.,因为您的char(2)太短,但没有SQLSTATE 2200M: A value failed to parse as a well-formed XML document or validate according to the XML schema.错误