使用Windows 2003,MySQL 5.1.23,MySQL .NET连接器6.2.2
我试图使用MySQLBulkLoader类读取固定宽度的文本文件。该类Load方法的摘录如下:
string sql = BuildSqlCommand();
MySqlCommand cmd = new MySqlCommand(sql, Connection);
cmd.CommandTimeout = 10 * 60;// Timeout;
cmd.ExecuteNonQuery();由'BuildSqlCommand‘创建的字符串是:
LOAD DATA LOCAL INFILE 'c:/M/D/ALLDATA_0.TXT' INTO TABLE dk.tk
FIELDS TERMINATED BY '' LINES TERMINATED BY '\n' 当程序启动“ExecuteNonQuery”时,会发生以下错误:
(消息)命令执行过程中遇到的致命错误。(源) MySql.Data (内部异常消息)试图读取结果集时遇到的致命错误。
ExecuteNonQuery是否存在已知的限制?文本文件大小为290 is。
发布于 2010-09-10 17:46:38
经过多次不同的尝试后,这个错误似乎与语句的语法以及MySQL大容量加载程序的工作方式有关。最后,我完全忽略了MySQL大容量加载器类,因为BuildSQLCommand方法返回了无法工作的结果。BulkLoader的问题是,它似乎需要用逗号分隔的文件,其中我的文件宽度固定,没有字段分隔符。
下面的代码示例用于导入一个固定宽度的文件--表字段大小是用来将文件切片到适当的字段中的。
string sql = @"load data infile 'c:/myfolder/Data/" + aFile.Name
+ "' ignore into table t_data fields terminated by '' enclosed by '' lines terminated by '\n'";
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.CommandTimeout = Timeout;
cmd.ExecuteNonQuery();我的超时值设置为0。
https://stackoverflow.com/questions/3621710
复制相似问题