我有一个 H2 数据库,一些查询在该数据库上工作,而其他查询则抛出一个ArrayIndexOutOfBoundsException
.
例如:
SELECT COLUMN_1 FROM MY_TABLE; // works fine
SELECT COUNT(COLUMN_1) FROM MY_TABLE; // gives following error message:
[Error Code: 50000, SQL State: HY000]
General error: "java.lang.ArrayIndexOutOfBoundsException";
SQL statement: SELECT COUNT(COLUMN_1) FROM MY_TABLE [50000-167]
出现此错误消息的原因是什么?
错误消息的原因是损坏的数据库。
我通过使用 H2 恢复工具解决了该问题。步骤如下:
-
创建恢复脚本
C:\PATH_TO_CORRUPT_DB>java -cp C:\PATH_TO_MY_H2\h2.jar org.h2.tools.Recover
删除旧的数据库文件(当然,首先要制作备份副本;-))
-
重新创建数据库
C:\PATH_TO_CORRUPT_DB>java -cp C:\PATH_TO_MY_H2\h2.jar org.h2.tools.RunScript -url jdbc:h2:PATH_TO_CORRUPT_DB\NAME_OF_DB -script NAME_OF_SCRIPT_FROM_STEP_ONE.sql
在这里你可以找到一个H2恢复工具更详细的使用说明 http://www.h2database.com/html/advanced.html#using_recover_tool
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)