我正在将旧的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';
提前谢谢。
答案 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
然后使用
导入MySQLload data local infile 'uniq.csv' into table tblUniq fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(uniqName, uniqCity, uniqComments)