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]在查询中使用了谓词,但不知道为什么它连接值并返回。当返回多行时,谁能告诉我如何只返回第一行。

4

1 回答 1

3

您需要使用正确的括号:

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> 
于 2013-12-31T11:17:23.870 回答