0

我正在将旧的 Sybase 数据库迁移到新的 MySQL 数据库。自从 Sybase 可以将数据导出到 .dat 文件(类似于新的 csv)的那一刻起,我决定使用它。

问题是 Sybase 使用逗号作为列分隔符,字符串中的逗号被忽略,因为它包含在 '' 中,但在 MySQL 中没有。

有没有办法解决这个问题?这是我的查询:

LOAD DATA LOCAL INFILE 'C:\\UNLOAD\\166.dat'
INTO TABLE linea_col
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\r\n';

先感谢您。

4

2 回答 2

2

如果它们用单引号括起来,试试这个:

LOAD DATA LOCAL INFILE 'C:\\UNLOAD\\166.dat'
INTO TABLE linea_col
COLUMNS TERMINATED BY ','
ENCLOSED BY '\''
LINES TERMINATED BY '\r\n';

如果这不起作用,那么您应该这样做ENCLOSED BY '''',但我 99.99% 确定第一个是正确的。

于 2012-06-14T08:33:14.720 回答
0

我不熟悉 DAT 文件与 CSV 的不同之处,但您可以使用 CSV 作为通用格式。

您可以使用 BCP 从 Sybase 导出并强制输出使用 CSV 格式

bcp database.dbo.tbl_name out c:\temp\output.csv -c -t, -U user_name -P password -S server_name

然后导入 MySQL

load data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)
于 2012-06-14T08:37:38.953 回答