H2数据库表上的SQL查询引发ArrayIndexOutOfBoundsException [英] SQL query on H2 database table throws ArrayIndexOutOfBoundsException
本文介绍了H2数据库表上的SQL查询引发ArrayIndexOutOfBoundsException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个H2数据库,其中一些查询可以在其中运行,而其他查询则抛出ArrayIndexOutOfBoundsException
.
I have a H2 database on which some queries work, while others are throwing an 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]
此错误消息的原因是什么?
What is the cause for this eror message?
推荐答案
错误消息的原因是数据库损坏.
The reason for the error message was a corrupt database.
我已使用H2恢复工具解决了该问题.步骤如下:
-
创建恢复脚本
Create the recovery script
C:\PATH_TO_CORRUPT_DB>java -cp C:\PATH_TO_MY_H2\h2.jar org.h2.tools.Recover
删除旧的db文件(当然,不是先制作备份副本;-))
Delete the old db file (not without making a backup copy first, of course ;-))
重新创建数据库
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恢复工具的更详细的使用说明
Here you can find a more detailed usage description of the H2 Recovery Tool
这篇关于H2数据库表上的SQL查询引发ArrayIndexOutOfBoundsException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文