sqlite数据库正常,但jdbc报告数据库磁盘映像格式不正确
我有一个新创建的sqlite数据库,它有点大:大约6.3GB。通过sqlite命令行工具使用它没有问题。当我尝试使用JDBC(groovy脚本)连接时,出现了一个异常:sqlite数据库正常,但jdbc报告数据库磁盘映像格式不正确,sqlite,jdbc,groovy,malformed,Sqlite,Jdbc,Groovy,Malformed,我有一个新创建的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完整性检查 返回的报告为:ok
Caught: java.sql.SQLException: [SQLITE_CORRUPT] The database disk image
is malformed (database disk image is malformed)
然后,我从sqlite命令行工具运行:
pragma完整性检查代码>
返回的报告为:ok
我在一个新的数据库上试用了groovy脚本,该数据库只有一个表和一行,它似乎可以工作
有什么建议吗
使用:
jdk1.7.0_60
groovy-2.3.4
sqlite-jdbc-3.7.2
groovy脚本:
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()
file
命令对数据库文件给出了什么/opt/no\u backup/text\u analytics/db/options.sqlite3
/opt/no\u backup/text\u analytics/test/test.db
我认为您最好的选择是导出数据并将其导入新的db文件。