sql-server - SQL 2005 CSV 导入引号用内部引号和逗号分隔

标签 sql-server sql-server-2005 csv import

我有一个带有引号文本分隔符的 CSV 文件。 90000 行中的大部分都很好,但有几行的文本字段包含引号和逗号。例如,字段值将是:

AB",AB

当分隔时,这变成

"AB"",AB"

当 SQL 2005 尝试导入此内容时,我收到诸如以下错误:

Messages
Error 0xc0202055: Data Flow Task: The column delimiter for column "Column 4" was not found.
 (SQL Server Import and Export Wizard)

只有当引号和逗号同时出现在文本值中时,才会出现这种情况。值如

AB"AB 变为 "AB""AB" 或者 AB,AB 变为“AB,AB”

工作正常。

以下是一些示例行...

"1464885","LEVER WM","","B","MP17"
"1465075",":PLT-BC   !!NOTE!!","","B",""
"1465076","BRKT-STR MTR            !NOTE!","","B",""
"1465172",":BRKT-SW MTG   !NOTE!","","B","MP16"
"1465388","BUSS BAR                !NOTE!","","B","MP10"
"1465391","PLT-BLKHD     ""NOTE""","","B","MP20"
"1465564","SPROCKET:13TEETH,74MM OD,66MM","ID W/.25"" SETSCR","B","MP6"
"S01266330002","CABLE:224"",E122/261,8 CO","","B","MP11"

最后一行是问题的示例 - “”导致错误。

最佳答案

我在使用 SSIS 时遇到了严重问题。 Access、Excel 甚至 DTS 看起来都做得很好,但 SSIS 却感到窒息。可变记录长度数据是另一个问题,但是,是的,这些嵌入式限定符是一个主要问题。特别是如果您无权访问导入文件,因为它们位于您付费访问的其他人的服务器上,甚至可能有 4 到 5 GB 大小!不能只是在每次导入时“全部替换”。

您可能需要在名为“UnDouble”的 Microsoft 下载中查看此内容,这里是另一个 workaround你可以尝试一下。

看起来就像 SQL Server 2008 中的 SSIS 一样,该错误仍然存​​在。我不知道为什么他们没有在解析器中解决这个问题,但这就像我们回到了 SSIS 基本导入功能的时代。

2010 年 11 月 18 日更新:此错误在 SSIS 中仍然存在。太棒了。

关于sql-server - SQL 2005 CSV 导入引号用内部引号和逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/711166/

相关文章:

两列中任一列的 SQL 唯一约束

c# - 如果在 ASP.NET 中不存在,sql server 的用法?

sql - 如何选择该记录有多个条目的行?

c# - 将 C# DateTime 的参数传递给 SQL Server 2005?

PHP CSV 上传到 MySQL 不执行任何操作

python - Selenium WebDriver 将数据逐行写入 CSV

sql - 使用 Firedac 运行 SQL 存储过程

sql - 今天最新和昨天最新记录

sql-server-2005 - SQL主键可以接受 '0'吗?

python - 将逗号小数点分隔符转换为数据框内的点