【发布时间】:2018-06-04 07:14:23
【问题描述】:
我正在构建一个 SSIS 包以将平面文件 (CSV) 加载到 SQL Server。
当我尝试将列state_code (char(2)) 插入到 SQL 服务器时,出现以下错误。如果我将目标数据类型更改为 Char(4),则包将成功执行。
我怀疑这是由于 CSV 中的“NULL”而造成的问题。该包将 NULL 作为 4 个字符并尝试插入 Destination(Char(2))。我搜索了很多。但是我在任何地方都没有发现任何类似的情况。
[平面文件源 [2]] 错误:数据转换失败。列“Column_1”的数据转换返回状态值 4 和状态文本“文本被截断或一个或多个字符在目标代码页中不匹配。”。
【问题讨论】:
-
在 CSV 文件中,如果单元格中包含单词“NULL”,则其值为 4 个字符的字符串“NULL”。空白单元格将被解释为值
NULL。 "NULL" 和NULL不一样。 -
您可以使用derived column task。放置在您的来源和目的地之间。使用它将字符串 null 替换为 null 值。
-
补充@Larnu 所说的,通常是当您从Excel 中保存时造成的,因为Excel 倾向于用文本
"NULL"替换实际的NULL字段 -
谢谢大家,你能告诉我在派生列转换中执行此操作的表达式
-
嘿,雅各布。那是一个 CSV 文件。供您参考文件类型:Microsoft Excel 逗号分隔值文件 (.csv
标签: sql-server ssis etl ssis-2012 ssis-2008