使用xquery调用数据库,提供重复值

时间:2013-12-31 05:15:54

标签: xquery xquery-sql osb xquery-update xquery-3.0

我正在使用XQuery查询OSB项目中的数据库。考虑一下 下表:

userId Name    Category
------ ------- --------
1      Dheepan Student
2      Raju    Student

和XQuery

let $userName:=fn-bea:execute-sql(
            $dataSourceJndiName,
            xs:string("NAME"),
            xs:string("select NAME from USER where CATEGORY= 'Student'")
           )/*:NAME[1]
return <root> {data($userName)} </root>

对于此查询,我将结果显示为<root>Dheepan Raju</root>。但是我 只需要返回一行,即使查询返回多行也是如此 关注<root>Dheepan</root>。我在查询中使用了谓词[1]但是 不知道为什么它连接值并返回。任何人都可以告诉我如何 返回多行时仅返回第一行。

1 个答案:

答案 0 :(得分:3)

你需要使用适当的paranthesis:

let $userName:=(fn-bea:execute-sql(
$dataSourceJndiName,
xs:string("NAME"),
xs:string("select NAME from USER where CATEGORY= 'Student'")
)/*:NAME)[1]
return <root> {data($userName)} </root>