我有一个新创建的 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()