当为可选外部参数传递"()"[empty sequence]时,"xdmp:eval"抛出"XDMP-ARG: -- vars is invalid"异常。
在这个问题中,"xdmp:eval"是一个在MarkLogic数据库中执行XQuery代码的函数。它允许开发人员在运行时动态执行XQuery代码。该函数接受两个参数:要执行的代码和一个可选的外部参数列表。
在这种情况下,异常"XDMP-ARG: -- vars is invalid"表示传递给"xdmp:eval"函数的外部参数列表无效。这通常是因为参数列表的格式不正确或者参数的值不符合预期。
为了解决这个问题,我们可以检查传递给"xdmp:eval"函数的参数列表,确保其格式正确,并且参数的值符合预期。如果参数列表为空,即"()",则可以考虑不传递任何外部参数。
以下是一个示例代码,演示如何使用"xdmp:eval"函数并处理可能的异常:
try {
let $code := '...'
let $vars := ()
return xdmp:eval($code, $vars)
} catch ($e) {
return $e
}
在上面的代码中,我们使用了try-catch语句来捕获可能抛出的异常。在try块中,我们定义了要执行的代码和一个空的外部参数列表。如果"xdmp:eval"函数抛出异常,它将被catch块捕获,并返回异常对象。
请注意,这只是一个示例代码,你需要将"..."替换为实际要执行的代码。
关于MarkLogic数据库和"xdmp:eval"函数的更多信息,你可以参考腾讯云的相关产品和文档:
领取专属 10元无门槛券
手把手带您无忧上云