首页 > 解决方案 > Hasbyte 函数返回一个空值

问题描述

我正在尝试通过 OLE DB 源在 SSIS 中提取数据,我正在使用的查询有一个 hashbyte 函数,它在 SSMS 中按预期返回了 hashbyte。但是在 SSIS 中,我返回 NULL 值。

功能如下;

SELECT HASHBYTES('MD5','AA12BC') AS ColA

在 SSIS 中,如果我单击预览,则会返回以下内容

系统字节[]

当写入表时,返回 NULL。

标签: sqlssis

解决方案


即使使用您看到的数据预览,如果采取以下步骤,在插入目标表时仍应应用正确的数据格式,并且不会出现意外空值:

  • 将数据转换为 varbinary,即SELECT CAST(HASHBYTES('MD5','AA12BC') as VARBINARY) AS ColA
  • 在目标组件上设置ValidateExternalMetadata为 false。
  • 确保该列的源和目标具有相同的长度,并且数据类型DT_BTYES在两个组件上(在“高级编辑器”页面的“输入和输出属性”窗格中)。这也适用于在执行期间使用该列的任何转换。

推荐阅读