2

我使用了一个应用程序将一些数据从文本文件导入到 mysql。我使用了以下代码。

try
{
   stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                               ResultSet.CONCUR_UPDATABLE);
   stmt1= (Statement) conn.createStatement();
   int deleteRows = stmt1.executeUpdate("delete  from powerdata where dateformat < dateformat_sub(now(), interval 8 month)");
   query = "LOAD DATA LOCAL INFILE \"E:\\powerdata.txt\" INTO TABLE powerdata  set dateformat=str_to_date(date, '%m/%d/%Y' '%H:%i:%s');";
   int Update= stmt.executeUpdate(query);
}

但是将数据从文本加载到 mysql 的查询为空。谁能告诉我我在哪里犯了错误?

4

2 回答 2

1

难不成是问题出在了\"E:\\powerdata.txt\"位子上?您正在转义引号,但您没有转义反斜杠。这意味着您的查询实际上如下所示: LOAD DATA LOCAL INFILE "E:\powerdata.txt" INTO TABLE powerdata set dateformat=str_to_date(date, '%m/%d/%Y' '%H:%i:%s ');

要修复文件名,请使用\"E:\\\\powerdata.txt\".

于 2009-03-03T22:32:03.023 回答
0

您可能没有授予您正在使用FILE权限的用户。如果您查看文档,他们会讨论远程用户使用 LOAD DATA LOCAL INFILE 加载数据所需的权限。关闭此功能是有充分理由的,因此启用它时要小心。

于 2009-02-24T09:29:44.647 回答