Marklogic未定义函数fn:string-pad()

rup*_*paj 1 xquery marklogic marklogic-9

我试着用fn:string-pad()xquery函数抛出错误的未定义函数,使用Marklogic版本9

https://docs.marklogic.com/fn:string-pad

小智 5

fn:string-pad()仅在XQuery的早期草稿中定义,后来被删除.0.9-ml方言支持早期(2003年5月)的草案.如果你在这个方言中有XQuery模块,你应该将它们真正迁移到严格符合标准的方言1.0或扩展版本1.0-ml.我推荐后者,除非你有特别的理由不这样做.在某些时候,支持0.9-ml将被删除.在此期间,您可以在模块顶部添加一个显式版本声明,以使用旧语法(以及此过时函数的可用性):xquery version "0.9-ml"

特别关于这个函数:它被删除了,因为写入很简单,即使进行了所有错误检查:

declare function local:string-pad($pad-string as xs:string?, $pad-count as xs:integer) as xs:string?
{
  if (empty($pad-string)) then ()
  else if ($pad-count lt 0) then error((),"Invalid pad count")
  else if ($pad-count eq 0) then ""
  else string-join(for $i in 1 to $pad-count return $pad-string,"")
};
Run Code Online (Sandbox Code Playgroud)