ssis-2017 - 加载到 SQL Server 表时如何防止 SSIS 截断文本字段
问题描述
我有一个带有 Excel 源和 OLD DB 目标的数据流任务。电子表格是从不同系统中提取的报告。它包括一个注释列,其中每一行都有不同长度的文本。
我的 SQL Server 表列定义为nvarchar(max)
. 我可以得到包来加载数据,一切看起来都很好。但是,第二天当我拉报告并尝试上传数据时,有时会收到一条消息。
以下输出列的元数据与外部列的元数据不匹配......
我一直在谷歌搜索这个错误,我发现一些评论表明包运行时,它会查看前几行数据以验证数据类型。我相信正在发生的事情是,当我最初创建并运行包时,电子表格的前几行在评论列中包含超过 255 个字符,因此 Excel 编辑器将数据类型显示为 Unicode 文本流 ( DT_NTEXT
)。第二天,当我运行相同的包,但更新了 excel 连接管理器以指向新的 days 电子表格时,电子表格的前几行不包含任何字符超过 255 的注释。在这种情况下,我收到了消息:
以下的元数据......
无论我单击“是”还是“否”,Excel 的编辑器都会将 DataType 更改为 Unicode 字符串 ( DT_WSTR
)。发生这种情况时,正在加载的数据将在评论列中限制为 255 个字符。
从第二天开始,我检查了电子表格,其中确实包含评论超过 255 个字符的行。他们只是不在前 8 行左右。
综上所述,有没有办法防止这种情况发生,这样我就可以确保无论我在哪一天拉/加载电子表格,也不管前 8 行的评论是否超过 255 个字符,数据流处理会将所有注释加载到我的 SQL Server 表中,并且不会在 255 个字符后截断任何注释。
我尝试在 Excel Source 和 OLD DB Destination 步骤之间添加数据转换,但这并没有解决问题。
您可以提供的任何帮助将不胜感激。
解决方案
推荐阅读
- kotlin - 排除会员声明
- ios - Fullscreen mode is disabled for an embedded YouTube video in WKWebView
- python - 替换字符串中的问题
- php - 将定制的幻灯片添加到 Wordpress 主题
- php - 错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败 PHP curl
- sql - 错误类型错误的 ADODB 命令值
- php - 在 AJAX 调用中显示来自 PHP 的消息
- node.js - 如果不存在,Mongoose.connect 不会创建数据库
- html - 使用 CSS 更改多图像背景中背景图像之一的亮度?
- excel - 如何将一个单元格文本与另一个包含 Excel 中已有文本的单元格连接起来?