【问题标题】:Why can I not use the .dump command with JDBC?为什么我不能在 JDBC 中使用 .dump 命令?
【发布时间】:2018-02-28 00:18:47
【问题描述】:

我试图通过将一个表的内容转储到另一个表来合并两个 sqlite 表。但是,每次我尝试这样做时,都会抛出一个语法错误,说明“[SQLITE_ERROR] SQL 错误或缺少数据库(靠近“sqlite3”:语法错误)”

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();

【问题讨论】:

    标签: java sql sqlite jdbc


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的回答。我想我必须找到另一种方法来做到这一点。
    猜你喜欢
    • 2017-01-02
    • 1970-01-01
    • 2020-10-27
    • 2016-10-29
    • 1970-01-01
    • 2018-07-02
    • 2016-03-02
    • 2014-05-15
    • 1970-01-01
    相关资源
    最近更新 更多