微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure 数据仓库中的“Cursor”和“FOR XML”子句

如何解决Azure 数据仓库中的“Cursor”和“FOR XML”子句

在 Azure 数据仓库中创建存储过程时,我在“Cursor”和“FOR XML”上遇到了一些错误。所以想知道 Azure 数据仓库是否支持它们。如果不是,那么有哪些选择。

此处附上带有错误信息图片的示例代码

enter image description here

enter image description here

解决方法

作为 per the documentation,Azure Synapse 专用 SQL 池(以前称为 Azure SQL 数据仓库)不支持 FOR XML 或游标。对于游标,要么将它们转换为使用受支持的 WHILE 循环,要么重构代码以使用基于集合的方法。另一种选择是使用外部的东西,比如 Azure 数据工厂或 Synapse Pipelines,并使用 For Each 循环。另一种选择是使用附近的 Azure SQL DB 进行一些预处理。您应该知道 Azure Synapse Analytics 的 MPP 体系结构不适合这种基于行的处理,您应该记住它是一个大数据平台,用于处理大量数据、数百万、数十亿行和基于集合的数据方法应该是首选。

如果您只是使用 FOR XML 来执行那个低俗的字符串连接技巧,那么您应该使用 STRING_AGG 来代替 Synapse 中完全支持的。有关最近的示例,请参阅 this answer。如果您实际上是在生成 XML,那么您将需要找到替代方法,例如附近的 Azure SQL DB。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。