【问题标题】:Error in Importing CSV file which have large white spaces导入包含大空格的 CSV 文件时出错
【发布时间】:2015-02-17 06:10:40
【问题描述】:

当我通过 SSMS 导入大型 CSV 文件时,它会引发错误,例如可能会发生截断...即使我只将原始 csv 文件中的一行插入另一个 csv 文件并开始导入失败...当我删除多余的白色时在重复的 CSV 文件中手动添加空格,该文件包含单行,标题导入成功....所以请指导我如何导入带有额外空格的原始大型 CSV 文件...

注意:我对整个表使用了varchar(max)text 数据类型,但我仍然得到同样的错误

下面我提到了我得到错误的特定原始行。这里的分隔符是 pipe('|')

Column1  |comment                                                                         |column3 
----------------------------------------------------------------------------------------------------
1        |RGA 103238                                                                      |017

在上面手动编辑的对我有用的行

Column1  |comment     |column3 
-------------------------------
1        |RGA 103238  |017

【问题讨论】:

  • 您的目标表是否有足够的数据长度来保留传入的数据,稍后我们可以在导入表后使用 LTRIM 和 RTRIM 更新表。
  • 我正在创建新表并使用 varchar(max)text 数据类型提取数据......但我仍然遇到同样的错误
  • 哪个错误?您的帖子中没有错误消息。请发布您用于导入的代码。
  • @Paolo - 我更新了我的帖子

标签: sql sql-server sql-server-2008 csv flat-file


【解决方案1】:

对此使用 TRIM 函数,因为这将删除空格。 Varchar 与它无关,因为它只会删除额外的内存空间(如果有)。

【讨论】:

  • 如果不将数据从 CSV 提取到 sql 表中,我该如何修剪这些列?
  • 使用 sql* loader 拉取 oracle 表和加载器控制文件中的数据,您可以对特定列进行修剪。
  • 是的,我在 MS SQL 中使用导入/导出向导时遇到了这个问题............不是在 oracle 中
猜你喜欢
  • 2015-02-08
  • 1970-01-01
  • 2017-07-21
  • 2016-01-03
  • 2011-09-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 2021-06-21
相关资源
最近更新 更多