【问题标题】:MSSQL: How to escape commas in imported CSV fields? [duplicate]MSSQL:如何在导入的 CSV 字段中转义逗号? [复制]
【发布时间】:2015-07-30 12:22:44
【问题描述】:

在将 cvs 文件导入数据库时​​,内容本身有逗号。例如对于字段地址,它可能是有效内容“1330 XYZ Ave, Washington, USA”。使用 MySQL,可以选择跳过字段内的逗号。这是选项:

被 '"' 转义的字段

那么,我的问题是,在使用批量插入命令时,我们有什么适合 MSSQL 的吗?

任何类似(见最后一行)

bulk insert table1 from 'file_path.csv' with (
  rowterminated by '\n',
  filedterminated by ',',
  fieldescaped by '"')

非常感谢。

【问题讨论】:

  • 您使用的是 SQL Server 还是其他一些 RDBMS?
  • 我在问题主题中提到了SQL。我修改它
  • 我认为他的意思是,您使用的是 MySQL、MSSQL、PostgreSQL。或任何其他 SQL 变体?并非所有人都一样。
  • 我刚刚在 SO 的另一篇文章中看到,SQL 不支持这样的选项,并且没有适当的方法可以这样做。让我们希望有更多的想法,然后我们可以关闭这篇文章,因为它可能是重复的。
  • 批量插入是SQL Server操作,所以我把标签从mysql改成了sql-server。

标签: sql sql-server bulk


【解决方案1】:

哦,那可爱的 CSV 格式。对于世界上的大多数人来说,它仅仅意味着用逗号分隔它们的值。但是,如果值包含逗号,则使用双引号。

据我所知,SQL Server 没有用于处理真正的 CSV 格式文件的内置方法。我过去遇到过这个问题,我在 Excel 中打开了文件,并用制表符而不是逗号分隔符将其保存了出来。这并非在所有情况下都有效,但过去对我有用。

【讨论】:

  • 我最好把它带到 MySQL 并从那里使用 Link Server 导出到 SQL ;)
  • @Espanta 。 . .我没有将 CSV 值导入 MySQL,但我看到文档支持引用字段。令人震惊,令人震惊的是 MySQL 支持该格式。 Excel 从第 0 天开始就几乎支持它们,因此您会认为同一公司的其他软件能够读取该格式。
  • 这是微软 ;-) 非常不一致 ;-)
猜你喜欢
  • 2012-01-18
  • 2013-03-08
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 2019-03-13
  • 1970-01-01
相关资源
最近更新 更多