首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Marklogic,Xquery

Marklogic,Xquery
EN

Stack Overflow用户
提问于 2017-01-11 13:49:35
回答 2查看 681关注 0票数 1

我正在处理MarkLogic查询控制台。我的XQuery文件不能正常工作,我正面临这个错误-- MarkLogic Xquery错误:

XDMP-意外:(err:XDMP 0003)意外令牌语法错误,意外Dollar_“

这是我正在执行的代码:

代码语言:javascript
复制
declare function fill:getA() as node()* { 
  for $projectId in /cf:Project/@Id/string() 
    $s := fill:getS($projectId)    
    $t := fill:getT($projectId) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-11 16:09:59

好的。在您在注释中提供了代码之后,我将其粘贴到票证中。在尝试格式化它之前,很明显,代码是错误的。xQuery中的变量赋值以let开头,如下所示:

代码语言:javascript
复制
let $foo := bar

代码语言:javascript
复制
$foo := bar

因此,您的错误从这里开始:

代码语言:javascript
复制
 for $projectId in /cf:Project/@Id/string() $sourceCatalogId := fill
 ...

至少应改为:

代码语言:javascript
复制
for $projectId in /cf:Project/@Id/string()
  let $sourceCatalogId := fill
  ...

请注意,在美元之前签字。这也是错误对你说的--“我不指望有一个美元符号.--很可能是因为它期望单词let。

我没有检查剩下的代码。这应该足以为您指出清理代码的方向。此外,使用一个查询感知编辑器也将有助于您在这里。

票数 7
EN

Stack Overflow用户

发布于 2019-11-15 04:20:58

在$s和$t解决和执行之前添加let变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41592693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档