【问题标题】:SQL SERVER 2008 - SSIS Excel DestinationSQL SERVER 2008 - SSIS Excel 目标
【发布时间】:2011-07-28 00:53:46
【问题描述】:

我目前正在尝试使用 SSIS 将大型数据集导出到 Excel 目标,但是我的其中一个列的问题是其中的记录超过了允许导出的最大字符数。目前使用数据类型DT_WSTR设置为255。

为了给您一些背景知识,我不得不使用数据转换工具将我的一些源列从 String [DT_STR] 转换为 [DT_WSTR],这通过允许我导出到 excel 部分解决了我的问题,除了那些超过字符限制的记录。现在我刚刚设置了一个多播并重定向了这些记录。

有没有办法解决这个问题?

【问题讨论】:

    标签: sql-server-2008 excel-2007 ssis


    【解决方案1】:

    您需要对包含超过 255 个字符的列使用备注数据类型。

    Excel Destination

    保存备忘录(ntext)数据。在成功将超过 255 个字符的字符串保存到 Excel 列之前,驱动程序必须将目标列的数据类型识别为备忘录而不是字符串。如果目标表已包含数据行,则驱动程序采样的前几行必须在 memo 列中至少包含一个长度超过 255 个字符的值的实例。如果目标表是在包设计期间或运行时创建的,则 CREATE TABLE 语句必须使用 LONGTEXT(或其同义词之一)作为备注列的数据类型。

    备忘录 Unicode 文本流 (DT_NTEXT)

    【讨论】:

    • 我认为会是这种情况,所以最初我右键单击我的 excel 目标,然后单击“显示高级编辑器”,然后选择输入和输出属性选项卡并展开 Excel 目标输入 -外部列。我选择我的列并按照建议更改数据类型,但是当我运行我的包时,它会转移回其原始数据类型。这是您设想的改变方式吗?
    • 感谢@DerekKromm 的建议,基于以上您的想法是什么?
    • 这很奇怪......不幸的是我没有在这台机器上安装 2008 来测试它。如果明天仍然营业,我会在工作中查看我的机器
    • 谢谢德里克,非常感谢。 @DerekKromm
    • 奇怪的是,我在还原列时遇到了同样的问题。我做了一些研究并在 EE 上发现了这一点:experts-exchange.com/Microsoft/Development/MS-SQL-Server/… 这表明它可能适用于 Excel 2003 文件?也许试试看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多