首页 文章

使用ssis导出Varbinary(max)列

提问于
浏览
0

我们有一个带有varbinary(max)列的表,该列用于Application( not for Attaching docs )中的Rich文本字段 . 我正在尝试通过一个非常简单的ssis包将列导出为平面文件 . 我的包中包含oledb cource和flat file destination .

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

谢谢你的帮助 .

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非常简单 . 我使用上面的查询作为我的来源 .
    Simple data flow

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

    metadata

    配置导出列转换 . 如果该文件已存在,则任务将失败,如图所示 . 您需要选中“允许附加”或“强制截断”选项 .

    Export Column Transformation editor

相关问题