SSIS - 将 DT_TEXT(长度 11,000 个字符)转换为 DT_STR 并将 trim 转换为 1,000 个字符
SSIS - Converting DT_TEXT(Length 11,000 Characters) to DT_STR and trim to 1,000 characters
我想从文本文件 (.csv) 中读取数据,将其中一列截断为 1000 个字符并使用 SSIS 包推送到 SQL table。
输入 (DT_TEXT) 的长度为 11,000 个字符,但我的挑战是 ...
- 仅当最大长度为 8,000 个字符时,SSIS 才能转换为 (DT_STR)。
- 无法对 Stream(DT_TEXT 数据类型)执行字符串操作
现在有 workaround/solution;
我截断了平面文件源中的文本并选择了忽略错误的选项;
如果您找到更好的解决方案,请分享!
仅供参考:
为了帮助其他发现此问题的人,我在派生列转换任务中使用文本流 [DT_TEXT] 以将其转换为 [[=26] 时,在数据流中更普遍地应用了类似的概念=]] 输入我定义的长度。这更容易指出正在发生的转换。
表达式:(DT_WSTR,1000)(DT_STR,1000,1252)myLargeTextColumn
数据类型:Unicode 字符串 [DT_WSTR]
长度:1000
*我使用了 1252 代码页,因为我的 DT_TEXT 是 UTF-8 编码的。
对于这个派生列,我还在高级编辑器中将 TruncationRowDisposition 设置为 RD_IgnmoreFailure(或者可以在配置错误输出中完成,将截断设置为 "Ignore failure")
(我会 post 图片,但显然我需要提高我的代表)
我想从文本文件 (.csv) 中读取数据,将其中一列截断为 1000 个字符并使用 SSIS 包推送到 SQL table。
输入 (DT_TEXT) 的长度为 11,000 个字符,但我的挑战是 ...
- 仅当最大长度为 8,000 个字符时,SSIS 才能转换为 (DT_STR)。
- 无法对 Stream(DT_TEXT 数据类型)执行字符串操作
现在有 workaround/solution; 我截断了平面文件源中的文本并选择了忽略错误的选项;
如果您找到更好的解决方案,请分享!
仅供参考:
为了帮助其他发现此问题的人,我在派生列转换任务中使用文本流 [DT_TEXT] 以将其转换为 [[=26] 时,在数据流中更普遍地应用了类似的概念=]] 输入我定义的长度。这更容易指出正在发生的转换。
表达式:(DT_WSTR,1000)(DT_STR,1000,1252)myLargeTextColumn
数据类型:Unicode 字符串 [DT_WSTR]
长度:1000
*我使用了 1252 代码页,因为我的 DT_TEXT 是 UTF-8 编码的。
对于这个派生列,我还在高级编辑器中将 TruncationRowDisposition 设置为 RD_IgnmoreFailure(或者可以在配置错误输出中完成,将截断设置为 "Ignore failure")
(我会 post 图片,但显然我需要提高我的代表)