Ssis 如何将二进制数据转换为文本,然后再转换回来

Ssis 如何将二进制数据转换为文本,然后再转换回来,ssis,data-conversion,sqldatatypes,Ssis,Data Conversion,Sqldatatypes,在SSIS中,我从一个SQL源(表)开始。它有3列,包括一个来自文件流的varbinary列(“FileBlob”)(在SSIS中显示为DT_IMAGE类型) 在第一个数据流组件中,我将varbinary列转换为DT_文本,并将结果输出到平面文件。这很有效 在下一步中,我读取了刚刚创建的平面文件,试图将DT_文本列转换回DT_图像 我得到这个错误: 转换返回的状态值为4,状态文本“文本被截断,或者目标代码页中的一个或多个字符不匹配 我假设有一种方法可以将二进制数据来回转换为文本,然后再转换回

在SSIS中,我从一个SQL源(表)开始。它有3列,包括一个来自文件流的varbinary列(“FileBlob”)(在SSIS中显示为DT_IMAGE类型)

在第一个数据流组件中,我将varbinary列转换为DT_文本,并将结果输出到平面文件。这很有效

在下一步中,我读取了刚刚创建的平面文件,试图将DT_文本列转换回DT_图像

我得到这个错误:

转换返回的状态值为4,状态文本“文本被截断,或者目标代码页中的一个或多个字符不匹配


我假设有一种方法可以将二进制数据来回转换为文本,然后再转换回二进制。只是不确定我遗漏了什么。谢谢。

您无法将该数据写入平面文件并返回相同的结果(内容可能与其中的列/行分隔符具有相同的值)。相反,您可能希望查看数据流示例中的导入/导出列任务q&aI不认为导出列任务是我要查找的。在这种情况下,二进制文件确实表示文件,但情况并非总是如此。我想要二进制文件(作为文本),以及平面文件中的其他列,并且能够在以后进行回程。此外,在从二进制到文本的转换中,文本似乎是二进制的文本表示形式…例如,SQL的0x0110AFF在平面文件中显示为“0110AFF”,这样就不会与分隔符冲突。如果SQL的varbinary值0x0110AAFF在平面文件中显示为“0110AAFF”,那么如果在进行转换之前添加回“0x”十六进制前缀会怎么样?您将无法将该数据写入平面文件并获得相同的结果(内容可能与其中的列/行分隔符具有相同的值)。相反,您可能希望查看数据流示例中的导入/导出列任务q&aI不认为导出列任务是我要查找的。在这种情况下,二进制文件确实表示文件,但不总是这样。我需要二进制文件(作为文本)和平面文件中的其他列,并且能够稍后返回。此外,在从二进制到文本的转换中,文本似乎是二进制的文本表示形式…例如,SQL的0x0110AAFF在平面文件中显示为“0110AAFF”,因此这不会与分隔符冲突。如果SQL的varbinary值0x0110AAFF在平面文件中显示为“0110AAFF”,那么如果在进行转换之前添加回“0x”十六进制前缀会怎么样?