【问题标题】:Column overflowing into another column-sql server and CSV file列溢出到另一个列-sql 服务器和 CSV 文件
【发布时间】:2012-12-16 13:48:52
【问题描述】:

我正在将 CSV 文件批量插入 SQL 服务器,但在检查结果后,我意识到 CSV 文件存在问题。 CSV 文件中名字列的内容以逗号分隔,因此被移至下一列,从而导致多米诺骨牌效应。(例如,假设列名是名字、编号和地址。第一个名称列有一个名称称为 James, Bond。由于逗号,它被移动到 Number 逗号,因此 Number 列的假定数据也被移动到 address 列。 有没有人对我如何在 SQL Server 中纠正这个问题有任何想法。

【问题讨论】:

  • Thanx Pondlife...这正是我面临的问题。但是,由于我批量插入的 excel 文件来自其他地方,而且其中有很多我无法在 excel 文件中手动检查和纠正它,我该如何绕过它来为我的存储过程工作。
  • 您有 CSV 文件或 Excel 电子表格吗?如果没有有效的列分隔符,任何程序都没有简单的方法来拆分 CSV 数据。如果您知道每列中预期的数据类型,也许您可​​以编写一个脚本,例如如果第 2 列始终为整数,则 Bond, James, 2 必须拆分为 |Bond, James|2 而不是 Bond|James|2。但是如果前两列的数据是Bond, James, Blofeld, Ernst,那么你就遇到了真正的问题。如果数据在 Excel 中,那么它已经结构化,因此您可以使用 SSIS 或其他工具来获取数据。
  • 是的,它是一个 CSV 文件。我知道每列需要哪些数据类型。我目前正在尝试基于分隔符编写一个 while 循环...
  • 最好和最简单的解决方案是修复源数据,所以我还想知道生成 CSV 文件的任何人或任何东西是否可以使用不同的分隔符来完成。

标签: sql-server csv


【解决方案1】:

您好,在记事本中打开原始数据后,我和同事发现它有文本标识符,因此我基本上只是使用格式文件进行批量插入。谢谢大家的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2015-11-21
    • 1970-01-01
    • 2020-05-05
    • 2021-03-24
    相关资源
    最近更新 更多