-1

再会

我创建了一个 bat 文件来将一个文本文件导入我的 MySQL 数据库,它看起来如下:

    sqlcmd /user root /pass password /db "MyDB" /command "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE TG_Orders FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'"

我的问题是我无法让“将连续分隔符视为一个”来工作......

我将如何添加它?

4

1 回答 1

1

现在我们实际上已经找到了问题的真正症结所在,这不是一个连续的分隔符问题——而是一个 CSV 文件格式问题。

如果您的 CSV 文件包含类似的字段,B121,535并且它们没有包含在某种引号中,并且您的分隔符是,,那么再多的 SQL jiggery-pokery 也无法解决您的问题。除非用引号括起来,否则带有逗号的未引用字段将始终被解释为两个单独的字段。

从导致问题的 CSV 文件中发布示例行,我们可以进一步诊断。如果做不到这一点,请再次从初始系统导出数据,确保格式正确(将所有内容包含在语音标记中或仅包含字符串字段)

最后,您确定您的数据库是基于 MySQL 而不是 Microsoft SQL?我能找到的唯一引用SQLCMD.EXE都指向与 SQL Server Express 相关的 Microsoft 站点,但即便如此,它也有不同的选项结构(-U针对用户而不是针对/user)。如果是这种情况,您可以通过放置正确的信息标签来省去很多麻烦。如果不是,那么我会说这SQLCMD.EXE是来自某个地方的自定义书面应用程序,问题可能都源于此。如果是这种情况,那么如果 CSV 格式正确,我们将无能为力 - 您只能靠自己

于 2013-09-04T15:09:32.050 回答