2012-06-14 86 views
0

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

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

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

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

在此先感谢您。

回答

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%肯定第一个是正确的。

+0

批准我是在回答自己的出口。 – IssamTP

0

我不熟悉DAT文件如何与CSV不同,但您可以使用CSV作为常用格式。

可以从Sybase使用BCP和强制输出使用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)