SQL Server 2005 XML最佳实施策略(4)
在 XQuery 上下文中,"average"函数 fn:avg (//r) 会返回静态错误,因为 XQuery 编译器无法对 fn:avg() 的参数中 元素的不同类型(xs:int、xs:float 或 xs:double)的值求和。为解决该问题,请将函数调用改写为 fn:avg(for $r in //r return $r cast as xs:double ?)。 示例:联合类型上的运算符 加法运算" "要求精确的操作数类型,以至于表达式 (//r)[1] 1 对上述元素 的类型定义返回静态错误。可以解决该问题的一种改写方式是 (//r)[1] cast as xs:int? 1,其中"?"表示具体取值 0 或 1。SQL Server 2005 要求带有"?"的"cast as",因为任何转换都会由于运行时错误而产生空序列。 在 XQuery 上下文中,"average"函数 fn:avg (//r) 会返回静态错误,因为 XQuery 编译器无法对 fn:avg() 的参数中 元素的不同类型(xs:int、xs:float 或 xs:double)的值求和。为解决该问题,请将函数调用改写为 fn:avg(for $r in //r return $r cast as xs:double ?)。 示例:联合类型上的运算符 加法运算" "要求精确的操作数类型,以至于表达式 (//r)[1] 1 对上述元素 的类型定义返回静态错误。可以解决该问题的一种改写方式是 (//r)[1] cast as xs:int? 1,其中"?"表示具体取值 0 或 1。SQL Server 2005 要求带有"?"的"cast as",因为任何转换都会由于运行时错误而产生空序列。
收藏此页到网摘/书签:







评论列表