【问题标题】:SQL Server string to int error when importing CSV导入 CSV 时 SQL Server 字符串转换为 int 错误
【发布时间】:2019-02-16 04:11:26
【问题描述】:

我正在尝试使用批量插入将 csv 文件导入 SQL Server 2017。除了主键之外,大多数 int 列都有 NULL(作为 csv 文件中的空白),但是当我导入时,我收到一个错误,即它无法将字符串转换为指定目标列的 int 类型。由于不知道是哪一列受到影响,我去把所有的空格都换成0,但还是出现游戏错误。

这是我导入后得到的:

我不知道该怎么做才能完成这项工作,但这对我来说似乎没有意义。

【问题讨论】:

  • 对于此类错误,最好使用 SSDT 而不是导入/导出向导,或者按照向导的建议动态创建表并从那里插入数据
  • 当您说它包含 Nulls 时,您的意思是单元格是空白还是包含字符串 'NULL'?空单元格 (NULL) 和字符串 'NULL' 不一样。
  • 单元格为空白。它什么都没有。
  • 为什么错误信息没有意义?您的输入中有一些行,其中要转换为整数的列中的值不包含整数数据。查看 Excel 中的文件是否可以找到它(如果它不是太大)。或者,将所有列作为文本导入临时表,然后使用它来填充目标表,修复任何错误

标签: sql sql-server database import


【解决方案1】:

问题不在于NULLs。您的CSV 中有一个列,您希望它只包含整数值,但实际上它包含无法转换为整数的字符串值。

这是一个例子:

my_str_to_int_col
     1.0 
     2.0 
     3.O
     4.0 
     5.0 
     ... 

注意3.O 实际上应该是3.0

因此,您需要确定要转换为整数的列包含非整数值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2018-08-04
    • 1970-01-01
    相关资源
    最近更新 更多