DT_TEXT在平面文件导入上连接行

时间:2012-08-28 23:16:15

标签: ssis

我有一个导入TSV文件的项目,其字段设置为文本流(DT_TEXT)。

当我有无效的行被重定向时,我的无效行中的DT_TEXT字段会被附加到第一个前进的有效行。

这是我的测试数据:

制表符分隔的输入文件:(“tsv IN”)

CatID   Descrip
y   "desc1"
z   "desc2"
3   "desc3"

CatID设置为整数(DT_I8)

Descrip设置为文本蒸汽(DT_TEXT)

这是我的基本数据流任务:

(我道歉,我不能发布图片,直到我的代表超过10: - /)

所以我的2个无效行被重定向,我的第3行指向成功, 但这是我的“成功”输出:

"CatID","Descrip"
"3","desc1desc2desc3"

使用DT_TEXT字段时这是一个错误吗?我对SSIS很新,所以也许我误解了文本流的使用。我选择使用DT_TEXT,因为我遇到了DT_STR的截断问题。

如果它有用,我的tsv Fail输出如下:

Flat File Source Error Output Column,ErrorCode,ErrorColumn
x   "desc1"
,-1071607676,10
y   "desc2"
,-1071607676,10

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该尽量避免在SSIS字段中使用 DT_TEXT,DT_NTEXT或DT_IMAGE 数据类型,因为它们会严重影响数据流性能。问题是这些类型不是作为CLOB(字符大对象),而是作为BLOB(二进制大对象)。

供参考:

使用 DT_TEXT ,您不仅可以像从大型数组中那样拉出字符。此类型表示为一个字节数组,可以存储任何类型的数据,在您的情况下不需要这些数据,并且会产生连接字段的问题。 (我在我的环境中重新创建了问题)

我的建议是坚持使用 DT_STR 作为你的描述,给它一个大的OutputColumnWidth。使其足够大,以便在从源文件中读取并测试时不会发生截断。