为什么我不能将.dump命令与JDBC一起使用?

时间:2018-02-28 00:18:47

标签: java sql sqlite jdbc

我试图通过将一个内容转储到另一个来合并两个sqlite表。但是,每次尝试此操作时,都会抛出语法错误,说明" [SQLITE_ERROR] SQL错误或缺少数据库(接近" sqlite3&#34 ;:语法错误)"

conn是原始数据库的连接,我发送所有sql命令。 newConn是要合并的数据库的连接。

如何解决此问题?提前谢谢!

编辑:我只是想确保不会因为重复而关闭。我使用了来自here的sql代码,但它仍然会导致问题。

        newConn = DriverManager.getConnection("jdbc:sqlite:" + path);

        String sqlMerge =  "sqlite3 ? .dump";
        conn.setAutoCommit(false);
        PreparedStatement pstmt1 = conn.prepareStatement(sqlMerge);
        pstmt1.setString(1, newConn.getCatalog());
        pstmt1.executeUpdate();
        conn.commit();

1 个答案:

答案 0 :(得分:2)

.dump是SQLite命令行shell的一个功能。 SQL语言的SQLite方言无法识别它。您可以从Java中调用命令行shell,也可以使用实际的SQL命令通过JDBC(读取数据)和Java文件操作(写入所需的转储文件)执行等效操作。