2

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

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

这是我的测试数据:

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

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

CatID 设置为整数 (DT_I8)

描述设置为文本流 (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

提前致谢。

4

1 回答 1

0

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

参考见:

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

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

于 2012-10-31T15:12:56.170 回答