gpt4 book ai didi

java - 尝试打开页面大小为 64KB 的 sqlite 数据库时出现异常

转载 作者:行者123 更新时间:2023-11-30 11:34:22 27 4
gpt4 key购买 nike

我有一个 java 程序,它与 SQLite 数据库交互,将 journal_mode 设置为 delete。

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

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

谁能告诉我解决这个问题的方法是什么?此数据库未加密,journal_mode 为仅删除。

不过我可以使用 SQLITESpy 工具打开这个数据库。

谢谢

最佳答案

如果数据库由另一个应用程序打开并且打开了 wal 和 shm 文件,我会得到同样的奇怪错误。由于我不想理会这种奇怪的设计内部细节,所以我使用以下解决方法:

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

并处理查询的副本。我什至可以通过这种方式免受数据库损坏问题的影响,这些问题似乎也困扰着"new"sqlite 设计。我希望 sqlite 设计者能够确保外部接口(interface)更加稳定和干净,并且不会出现故障和损坏等内部设计问题。

关于java - 尝试打开页面大小为 64KB 的 sqlite 数据库时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709698/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com