【问题标题】:SSIS - Converting DT_TEXT(Length 11,000 Characters) to DT_STR and trim to 1,000 charactersSSIS - 将 DT_TEXT(长度 11,000 个字符)转换为 DT_STR 并修剪为 1,000 个字符
【发布时间】:2015-04-11 21:39:56
【问题描述】:

我想从文本文件 (.csv) 中读取数据,将其中一列截断为 1000 个字符,然后使用 SSIS 包推送到 SQL 表中。

输入 (DT_TEXT) 的长度为 11,000 个字符,但我的挑战是...

  • 仅当最大长度为 8,000 个字符时,SSIS 才能转换为 (DT_STR)。
  • 无法对 Stream(DT_TEXT 数据类型)执行字符串操作

【问题讨论】:

  • 您是否尝试过在脚本转换中执行转换?
  • 不...如果我无法找到具有常规转换和转换的解决方案,我将处理脚本任务。

标签: sql-server ssis sql-server-2012 type-conversion


【解决方案1】:

现在有了解决方法/解决方案; 我截断了平面文件源中的文本并选择了忽略错误的选项;

如果您找到更好的解决方案,请分享!

仅供参考:

【讨论】:

    【解决方案2】:

    为了帮助其他发现此问题的人,在派生列转换任务中使用文本流 [DT_TEXT] 时,我在数据流中更普遍地应用了类似的概念,以将其转换为 [DT_WSTR] 类型到我定义的长度。这更容易调出正在发生的转换。

    表达式:(DT_WSTR,1000)(DT_STR,1000,1252)myLargeTextColumn
    数据类型:Unicode 字符串 [DT_WSTR]
    长度:1000

    *我使用 1252 代码页,因为我的 DT_TEXT 是 UTF-8 编码的。

    对于这个派生列,我还在高级编辑器中将 TruncationRowDisposition 设置为 RD_IgnmoreFailure(或者可以在配置错误输出中完成,将截断设置为“忽略失败”)

    (我会发布图片,但显然我需要提高我的代表)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      相关资源
      最近更新 更多