0

我们有一个带有 varbinary(max) 列的表,该列用于应用程序中的富文本字段(不用于附加文档)。我正在尝试通过一个非常简单的 ssis 包将列导出到平面文件中。我的包包含 oledb 课程和平面文件目标。

当我打开平面文件输出时,我惊讶地发现数据被截断为 255 个字符,你知道如何完全导出所有数据吗?

谢谢帮助。

4

1 回答 1

3

在等待澄清您打算如何使用它的同时,我建议您查看Export Column Transformation。在这个问题上也需要类似的需求 Using SSIS to extract a XML representation of table data to a file

我敲了一个简单的例子来说明如何导出 varbinary 数据。以下查询将一些字符串连接在一起,然后将它们转换为 varbinary(max)。它还会生成第二列,它将作为使用的输出文件。

WITH STARTER(starter) AS
(
    -- some simple data
    SELECT 'a'
    UNION ALL SELECT 'b'
    UNION ALL SELECT 'c'
)
,  VCM(longenough) AS
(
    SELECT
        CAST(REPLICATE(T.starter, 8000) AS varchar(max))
    FROM
        STARTER T
)
SELECT
    CAST(V0.longenough + V1.longenough AS varbinary(max)) AS BlobData
,   'C:\ssisdata\filename.' + CAST(row_number() OVER (ORDER BY (SELECT NULL)) AS varchar(10)) + '.txt' AS FileName
FROM
    VCM V0
    CROSS APPLY
    VCM V1;

配置 SSIS 非常简单。我使用上述查询作为我的来源。 简单的数据流

我确保元数据看起来像预期的那样 - 是的,BLobData 列是一个图像

元数据

配置导出列转换。如果文件已存在,则任务将失败,如图所示。您需要检查 Allow Append 或 Force Truncate 选项。

导出列转换编辑器

于 2012-10-03T17:39:06.123 回答