Xqueryerror:预期为“}”,找到“ $”

问题描述 投票:0回答:1

我应该使用给我的结构编写一个XQuery。但是,我有一个我不确定如何解决的错误,想寻求建议。

这是我已经解决的查询:

FOR $y IN db/sells/row
         $x IN db/products/row[pid = $x/pid]
RETURN <product>
                    <name>{$x/name}</name>
                    <price>{$x/price}</price>
                    <description>{$y/description}</description>
                    {FOR $z IN db/stores/row[sid = $y/sid]
                    RETURN <store>
                                        <name>{$z/name}</name>
                                        <phone>{$z/phone}</phone>
                                        <markup>{$y/markup}</markup>
                                    </store>
                    }                
                </product>
</products>```

The row that the error highlighted was:

{FOR $z IN db/stores/row[sid = $y/sid]

and i have an error that states expected "}", found "$"

  [1]: https://i.stack.imgur.com/8eyzq.png

Would really appreciate if you could help me. Thank you.
xquery
1个回答
0
投票

XQuery中的关键字必须为小写,因此“ FOR”,“ IN”,“ RETURN”都必须转换为小写。但是,即使那样,也会出现编译错误,因为您需要使用逗号或另一个“ for”关键字“来将变量$x绑定到另一个循环。

因此,将编译以下内容:

for $y in db/sells/row,
         $x in db/products/row[pid = $y/pid]
return <product>
                <name>{$x/name}</name>
                <price>{$x/price}</price>
                <description>{$y/description}</description>
                {for $z in db/stores/row[sid = $y/sid]
                return <store>
                                    <name>{$z/name}</name>
                                    <phone>{$z/phone}</phone>
                                    <markup>{$y/markup}</markup>
                                </store>
                }                
            </product>
© www.soinside.com 2019 - 2024. All rights reserved.