DB2使用XMLQUERY选择特定的XML内容

时间:2013-09-18 14:27:51

标签: sql xml db2

这是一个示例XML。在这个XML中,我想选择名称“Marc Intes”,但我遇到了问题。

<Person Name="Marc Intes">

以下是我查询的方法,这个XML文档位于名为GUEST的列下。

XMLQUERY('$GUEST/Person@Name')

但它给我一个错误说:

SQL16002N  An XQuery expression has an unexpected token "@" following 
"ST/Person". Expected tokens may include: "". Error QName=err:XPST0003.  
SQLSTATE=10505

我哪里出错了?我现在真的很困惑。

1 个答案:

答案 0 :(得分:3)

您的查询有两个问题。首先,XML属性也是一个XPath维度,因此属性引用应该用斜杠分隔:

XMLQUERY('$GUEST/Person/@Name')

其次,XMLQUERY应该返回XML序列,并且不能将独立属性转换为序列,因此您需要将其转换为SQL类型:

XMLCAST ( XMLQUERY('$GUEST/Person/@Name') AS VARCHAR(20) )
相关问题