我有一个非常简单的SSIS包,该包从平面文件中将每一列作为文本流[DT_TEXT]导入每一行。然后,我有了一个OLE DB目标(我也尝试过ADO NET),将其插入到我的登台表中。
它似乎工作正常,但是仅导入了43,680个字符,源和目标均为文本数据类型,因此应提供2,147,483,647个字符。
我无法理解这种截断来自何处,如果有人能帮助它使我发疯,谢谢。
答案 0 :(得分:0)
默认情况下,平面文件连接管理器将字符串列的长度设置为50个字符(OutputColumnWidth为50)。在“平面文件连接管理器编辑器”对话框中,您可以评估示例数据并自动调整这些列的大小,以防止数据被截断或超出列宽。
答案 1 :(得分:0)
它与DT_TEXT无关,而与SSMS如何限制字符显示有关。如果使用LEN([YourColumn]),则可能会看到数据实际上完全存储在目标中,但是当通过SELECT查询时,SSMS不会显示完整的字符集。您可以转到工具->选项->查询结果-> SQL Server->结果到网格将其扩展到65535,这样您可能会看到更多字符。 后续线程有更多详细信息。 https://www.sqlservercentral.com/forums/topic/varcharmax-not-storing-all-data