Java 尝试打开页面大小为64KB的sqlite DB时发生异常

Java 尝试打开页面大小为64KB的sqlite DB时发生异常,java,sqlite,jdbc,Java,Sqlite,Jdbc,我有一个java程序,它与SQLite DB交互,日志模式为delete 这个程序适用于所有数据库,只要数据库的页面大小为32KB,我就可以进行事务处理 但是有一个sqlite DB的页面大小为64KB。当我试图执行 stmt.executeQuery(); 在那个数据库上,它给了我异常 java.sql.SQLException:[SQLITE\u NOTADB]打开的文件不是数据库文件(文件已加密或不是数据库) 有人能告诉我解决这个问题的办法吗?此数据库未加密,且只有日志_模式作为删除模式

我有一个java程序,它与SQLite DB交互,日志模式为delete

这个程序适用于所有数据库,只要数据库的页面大小为32KB,我就可以进行事务处理

但是有一个sqlite DB的页面大小为64KB。当我试图执行 stmt.executeQuery(); 在那个数据库上,它给了我异常
java.sql.SQLException:[SQLITE\u NOTADB]打开的文件不是数据库文件(文件已加密或不是数据库)

有人能告诉我解决这个问题的办法吗?此数据库未加密,且只有日志_模式作为删除模式

我可以用SQLITESpy工具打开这个数据库


感谢使用64 KB页面需要或更高版本。

如果数据库由另一个应用程序打开,并且打开了wal和shm文件,我会收到相同的奇怪错误。由于我不想为这些奇怪的设计内部细节而烦恼,因此我使用以下解决方法:

echo ".dump" | sqlite3 database.db |  sqlite3 dbcopy.db

并处理副本以供查询。我甚至可以通过这种方式避免数据库损坏问题,这似乎也困扰着“新”的sqlite设计。我希望sqlite设计人员能够确保外部接口更加稳定和干净,不会出现诸如故障和损坏之类的内部设计问题。

您可以用任何其他sqlite工具打开该文件吗?是的,我可以用sqlitespy工具打开此数据库。
选择sqlite_version()的结果是什么
PRAGMA编译选项在SQLiteSpy和JDBC驱动程序中?从程序,版本=3.6.20,但当我尝试运行PRAGMA compile_选项时;它给了我一个例外,说没有结果集。从SQLiteSpy中,version=3.7.8和compile_选项是选项列表,包括ENABLE_COLUMN_元数据、ENABLE_FTS1等。。