将数据从Sybase导入MySQL

时间:2012-06-14 08:18:27

标签: mysql

我正在将旧的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';

提前谢谢。

2 个答案:

答案 0 :(得分: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%肯定第一个是正确的。

答案 1 :(得分: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)