0

我有这样的 .csv 文件数据:

"UPRR 38 PAN AM "M"","1"

我使用下面的命令将数据加载到表中,该命令有两列(ab)。

LOAD DATA LOCAL INFILE 'E:\monthly_data.csv'
INTO TABLE test_data_table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

但是当我选择表格时,它会给出意想不到的结果,如下所示。

a包含:

UPRR 38 PAN AM "M","1

...而 b 是NULL.

谢谢

4

2 回答 2

2

您可以替换文件中“双引号双引号”的所有实例

要么 A. 打开文件并找到替换它们,要么 B. 制作一个脚本来打开文件并替换造成混乱的额外引号

于 2015-09-24T17:23:53.767 回答
1

你有这个:

ENCLOSED BY '"'

因此"不再是常规字符。这是一个具有特殊含义的特殊字符:它突出显示列值的开始和结束。如果你想输入一个"那样的行为,你需要转义它。RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Files文档解释了如何做到这一点:

如果使用双引号将字段括起来,则出现在字段内的双引号必须通过在其前面加上另一个双引号来进行转义

a;b
"UPRR 38 PAN AM ""M""";1

正如他们所说,垃圾进,垃圾出;-)

于 2014-05-06T15:06:01.203 回答