LOAD中的LOAD DATA INFILE语法错误... SQL& Java的

时间:2014-11-16 04:32:55

标签: java sql bulkinsert sql-insert load-data-infile

我正在尝试使用加载数据infile(也尝试加载数据本地infile)在我的Java程序中运行insert语句,我似乎无法弄清楚出了什么问题。无论是SQL语句还是文件名/路径...... 我觉得我的文件名/路径错了。在Eclipse中,我在项目文件夹中添加了一个.txt文件。

我试图通过使用getAbsolutePath获取文件的路径,但我仍然错误地说加载中存在语法错误。

这是我尝试编写insert语句的地方: 我也在我的声明中更改了“to”,因为我已经看到了很多版本如何编写这个。我将insert语句部分的file.getabsolutepath更改为只是文件名。

    String filename = "studentData.txt";
    String workingDirectory = System.getProperty("user.dir");
    File file = new File(workingDirectory, filename);

    System.out.println("Final filepath : " + file.getAbsolutePath());

    sql = "LOAD DATA INFILE \"" + file.getAbsolutePath()
            + "\" INTO TABLE STUDENT FIELDS "
            + "TERMINATED BY ',' LINES TERMINATED BY '\\n' "
            + "(STUDENT_ID, NAME, MAJOR, GRADE);";
    stmt.executeUpdate(sql);
}

以下是我的错误:

最终文件路径:/Users/amnakhan/Documents/workspace/DatabaseExample/studentData.txt

Exception in thread "main" java.sql.SQLException: near "LOAD": syntax error
at org.sqlite.core.NativeDB.throwex(NativeDB.java:397)
at org.sqlite.core.NativeDB._exec(Native Method)
at org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
at DatabaseAccessHelper.createTables(DatabaseAccessHelper.java:72)
at DatabaseAccessHelper.main(DatabaseAccessHelper.java:296)

我的程序运行正常..如果我在insert语句中硬编码,程序运行正常。所以我知道其他一切都没问题。我试图只加载一个文本文件并运行插入语句。

有什么想法吗?

0 个答案:

没有答案