azure-synapse - Azure 数据仓库中的“Cursor”和“FOR XML”子句
问题描述
在 Azure 数据仓库中创建存储过程时,“光标”和“FOR XML”出现了一些错误。所以想知道 Azure 数据仓库是否支持它们。如果没有,那么有什么替代方案。
此处附有带有错误消息图片的示例代码。
解决方案
根据文档,Azure SynapseFOR XML
专用 SQL 池(以前称为 Azure SQL 数据仓库)不支持 或 游标。对于游标,要么将它们转换为使用受支持的循环,要么重构代码以使用基于集合的方法。另一种选择是使用外部的东西,例如 Azure 数据工厂或 Synapse Pipelines,并使用 For Each 循环。另一种选择是使用附近的 Azure SQL DB 进行一些预处理。您应该知道 Azure Synapse Analytics 的 MPP 架构不适合这种基于行的处理,并且您应该记住它是一个大数据平台,适用于大量数据、数百万、数十亿行和基于集合的数据方法应该是首选。WHILE
如果您只是FOR XML
用来执行那种低俗的字符串连接技巧,那么您应该使用STRING_AGG
Synapse 完全支持的方法。有关最近的示例,请参见此答案。如果您实际上是在生成 XML,那么您将需要找到一种替代方法,例如附近的 Azure SQL DB。
推荐阅读
- loops - Julia 中的命名循环
- php - Eloquent 模型在批量插入时触发保存事件
- python - 为什么我对二元分类最有用的特征的结果在 python 中总是相同的?
- python-3.x - 用户空闲时如何打开 Tkinter 窗口?
- typescript - 断言总是返回 err(期望 'a' 完全等于 'a')
- excel - 尝试根据标准将列中单元格的值移动到另一个
- azure - 无法让 Azure AD B2C 与 Xamarin Forms 一起使用
- kubernetes - Helm Chart 未正确部署
- python - Matplotlib 条件标记颜色
- cypher - CYPHER 获取节点之间的边