为什么 fn:substring-after Xquery 函数不能在 ML TDE 中使用

Why fn:substring-after Xquery function could not be used inside ML TDE

在我的 ML 数据库中,我们有分销商代码的文档,例如 'DIST:5012' (DIST:XXXX) XXXX 是一个四位数。

目前,在我的 TDE 中,以下代码运行良好。

然而,我不想连接所有原始分销商代码,而是只想连接数字部分。我使用了 fn:substring-after XQuery 函数。但是,它不会起作用。它不会再在 SQL 视图中显示 distributorCode 列。 (以下代码无效。)

怎么了?如何解决?

fn:substring-after 和 fn:string-join 都在 TDE 方言页面中。 https://docs.marklogic.com/9.0/guide/app-dev/TDE#id_99178

substring-after() 需要单个字符串作为输入,而不是字符串序列。

为了演示,这是行不通的:

let $dist := ("DIST:5012", "DIST:5013")
return substring-after($dist, "DIST:")

这将:

for $dist in ("DIST:5012", "DIST:5013")
return substring-after($dist, "DIST:")

我需要仔细检查哪些 XPath 表达式可以在 DTE 中工作,您可以更改它以在最后一步中应用 substring-after() 函数:

fn:string-join( distributors/distributor/urn/substring-after(., 'DIST:'), ';')