如何解决加载到 SQL Server 表时如何防止 SSIS 截断文本字段
我有一个包含 Excel 源和旧数据库目标的数据流任务。电子表格是从不同系统中提取的报告。它包括一个评论列,每行都有不同长度的文本。
我的 SQL Server 表列定义为 nvarchar(max)
。我可以让包加载数据,一切看起来都很好。但是,第二天当我提取报告并尝试上传数据时,有时会收到一条消息。
以下输出列的元数据与外部列的元数据不匹配....
我一直在谷歌搜索这个错误,我发现一些评论表明当包运行时,它会查看前几行数据以对数据类型进行排序。我相信发生的事情是,当我最初创建和运行包时,电子表格的前几行在注释列中包含超过 255 个字符,因此 Excel 编辑器将数据类型显示为 Unicode 文本流 (DT_NTEXT
)。第二天,当我运行相同的包,但更新了 excel 连接管理器以指向新的天数电子表格时,电子表格的前几行不包含任何字符超过 255 的注释。在这种情况下,我收到消息:
以下元数据.....
无论我单击是还是否,Excel 编辑器都会将数据类型更改为 Unicode 字符串 (DT_WSTR
)。发生这种情况时,正在加载的数据将被限制在评论列中的 255 个字符内。
我从第二天开始检查电子表格,它确实包含评论超过 255 个字符的行。它们只是不在前 8 行左右。
说了这么多,有没有办法防止这种情况发生,这样我就可以确保无论我在哪一天拉/加载电子表格,无论前 8 行是否有超过 255 个字符的评论,数据流处理会将所有注释加载到我的 SQL Server 表中,并且不会在 255 个字符后截断任何注释。
我尝试在 Excel Source 和 OLD DB Destination 步骤之间添加数据转换,但这并没有解决问题。
如果您能提供任何帮助,我们将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。