You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory中为字段生成256位加密哈希值

解决Azure Data Factory中生成SHA256哈希列的语法错误问题

问题根源

你两次修改的查询都存在明确的语法问题:

  • 第一次查询中,HASHBYTES('SHA2_256', ...)里的单引号未在ADF表达式中转义,导致@concat函数的字符串拼接被提前终止,触发参数分隔错误。
  • 第二次查询中,HASHBYTES(SHA2_256, , ...)多了一个多余的逗号,直接违反SQL语法规则。

正确的源查询表达式

在ADF的表达式语言中,字符串内的单引号需要用两个单引号转义,才能让SQL语句正确解析。正确的拼接表达式如下:

@concat('SELECT *, HASHBYTES(''SHA2_256'', CAST(signature AS NVARCHAR(MAX))) AS Signature FROM ', pipeline().parameters.Domain, '.', pipeline().parameters.TableName)

关键说明

  • 将'SHA2_256'改为''SHA2_256'',ADF会自动将其解析为SQL语句中单个单引号包裹的算法名称参数。
  • 确保HASHBYTES函数的参数格式合规:第一个参数为单引号包裹的哈希算法名,第二个参数为待哈希的字段(此处是转换后的signature列),参数间仅用一个逗号分隔。

可选替代方案:使用数据流派生列

如果你的场景允许使用ADF数据流,也可以通过派生列转换生成哈希值,无需修改源查询:

  • 在数据流中添加源数据集,读取目标表数据。
  • 添加派生列转换,设置列名为Signature,表达式使用:
    sha2(toString(signature), 256)
    
  • 将处理后的数据写入目标表(若为新增列,需确保目标表已提前创建该列,或开启自动映射)。

内容的提问来源于stack exchange,提问作者Patterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 09:25:12