6

我有一个新创建的 sqlite 数据库,它有点大:大约 6.3GB。我通过 sqlite 命令行工具使用它没有问题。当我尝试使用 JDBC(groovy 脚本)连接时,出现异常:

Caught: java.sql.SQLException: [SQLITE_CORRUPT]  The database disk image 

is malformed (database disk image is malformed)

然后我从 sqlite 命令行工具运行:

pragma integrity_check;

它报告了:ok

我针对具有单行的单个表的新数据库尝试了 groovy 脚本,它似乎可以工作。

有什么建议么?

使用:

jdk1.7.0_60

groovy-2.3.4

sqlite-jdbc-3.7.2

常规脚本:

import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet


println("hello world")

Class.forName("org.sqlite.JDBC")

String dbFile =
        "/opt/no_backup/text_analytics/db/options.sqlite3"  //large database - exception
//        "/opt/no_backup/text_analytics/test/test.db"      //small database - works

Connection conn = DriverManager.getConnection("jdbc:sqlite:$dbFile")

String query =
//        "select count(*) from test"                                   //small database - works
      "select count(*) from bb_options where underlyingSymbol='GE'"     //large database - fails

ResultSet rs = conn.createStatement().executeQuery(query)

while(rs.next()) {
    println(rs.getInt(1))
}

conn.close()
4

0 回答 0