为什么 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:'), ';')
在我的 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:'), ';')