Ich versuche, Daten aus CSV-Datei zu laden, indemnicht gefunden (Fehlermeldung Errcode: 22 "Invalid argument")
try (Connection connection = DBConnection.getConnection()) {
String loadQuery = "LOAD DATA INFILE '" + path.toAbsolutePath()
+ "' INTO TABLE persons FIELDS TERMINATED BY ','"
+ " LINES TERMINATED BY '\n' (PersonID, FirstName, City) ";
System.out.println(loadQuery);
Statement stmt = connection.createStatement();
stmt.execute(loadQuery);
} catch (Exception e) {
e.printStackTrace();
}
aber ich erhalte die folgenden Fehler
LOAD DATA INFILE 'D:\temp\fileupload.csv' INTO TABLE persons FIELDS TERMINATED BY ',' LINES TERMINATED BY '
' (PersonID, FirstName, City)
java.sql.SQLException: File 'D:\ empfileupload.csv' not found (Errcode: 22 "Invalid argument")
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3563)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3495)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2687)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2616)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:782)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:625)
at com.coin.pay.controller.IndexController.readCsvUsingLoad(IndexController.java:203)
at com.coin.pay.controller.IndexController.uploadCSVtoDB(IndexController.java:175)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache. tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) bei java.lang.Thread.run (Thread.java:745)
Wie soll ich das lösen? jede Hilfe wird geschätzt.
Ist dies nicht * "' D: \ emp' "* dass das' \ t' im Pfad als Tab interpretiert wurde? Ist es nicht offensichtlich, zumindest zu testen, um es zu entkommen? Wie '\\ t'? – Tom
Sie müssen das "\" in Ihrem String mit "\" umwandeln: '... INFILE 'D: \\ temp ...'. "\ t" ist ein Tabulatorzeichen. – IQV