【问题标题】:Returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page返回状态值 4 和状态文本“文本被截断或一个或多个字符在目标代码页中不匹配
【发布时间】:2020-05-01 16:04:37
【问题描述】:

我从 FDA official site 下载了平面文件。该文件为 NDC 数据库文件 - 文本版本(Zip 格式)。

我解压后得到product.txt

我尝试使用 SSIS 将其导入我的数据库。

所有列都是varchar(max)

SSIS 失败并显示错误消息:

[平面文件源2] 错误:

数据转换失败。列“PHARM_CLASSES”的数据转换返回状态值 4 和状态文本“文本被截断或目标代码页中的一个或多个字符不匹配。”。

我没有解决方案,需要帮助。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    我模拟了你的过程,所以问题是由于某种原因,“平面文件连接管理器”将所有列的“列宽”识别为 50(实际大小不止于此), 并且您有不止一个“有问题的列”,例如(LABELERNAME、SUBSTANCENAME 等)

    因此,对于每个这样的列,将“列宽”更改为 3000,它会为您工作。 如果您想更具体,可以在 excel 上打开文件并找到每列的 MAX LEN,然后分别更改“列宽”。

    【讨论】:

      【解决方案2】:

      varchar max 可以容纳大约 8000 个字符,因此您可以增加输出列的宽度。 您还需要特别注意字段类型非常具体的日期,并尝试将其传递为 NULL,以防它在源数据中不可用。

      【讨论】:

      • varchar(max) 从什么时候开始有 8000 个字符的?我上次检查时它可以存储 2GB。
      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      • 2018-10-24
      • 2023-03-05
      • 2011-04-04
      • 1970-01-01
      相关资源
      最近更新 更多