当前位置: 首页 > 面试题库 >

H2数据库表上的SQL查询引发ArrayIndexOutOfBoundsException

楚意
2023-03-14
问题内容

我有一个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恢复工具解决了该问题。 步骤如下:

  1. 创建恢复脚本

    C:\PATH_TO_CORRUPT_DB>java -cp C:\PATH_TO_MY_H2\h2.jar org.h2.tools.Recover
    
  2. 删除旧的db文件(当然,首先要制作备份副本;-)

  3. 重新创建数据库

    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恢复工具的更详细的使用说明



 类似资料:
  • 目前正在android studio中用java进行一个项目,我正在尝试用sql查询两个表。各表如下: 预订表 User_Bookings表 用户表仅供参考 有没有一种方法可以使用UNION或INNER JOIN并仅使用用户ID连接这两个表? 例如,对于ID为2的用户,我希望从预订表中获得出发时间 还是UNION/INNER JOIN不是我试图实现的目标的正确运算符?正如我一直在尝试和复习我的SQ

  • 我已经建立了一个Access数据库,现在我正试图从SQL数据库将数据导入Access数据库表。Access数据库表现在是空的,我正试图从SQL数据库导入数据,只有一个键值。例如,我只想导入符合以下条件的数据。 我已经设置了到表的ODBC链接。我一直在寻找这样做的方法,但没有找到任何好的方法。 使现代化 找到了答案,对于任何需要知道如何做到这一点的人,以下是步骤。

  • 问题内容: 我需要类似的东西 但是,在H2中不起作用。请指教。 问题答案: 使用 CURRENT_TIMESTAMP

  • 我正在尝试运行检查数据库并获得连接不存在错误!我在MySQL中有一个名为myapp的数据库以及其他数据库。 这是我的settings.py 项目结构: 这就是发生的情况: root @ IP-10-202-209-99:~/Desktop/my site # python manage.py inspectdb-database myapp trace back(最近一次调用last):< br

  • 问题内容: 我正在尝试调整SQL查询以检查服务器上每个数据库中存在的特定字段中存在的值。 有100个单独的数据库,我想检查每个数据库的特定记录。 答案可能是使用下面的命令,但是我很难适应它。 我在下面的链接上获得了更大的成功; https://stackoverflow.com/a/18462734/3461845 我需要能够执行以下查询: 并且还为返回的每一行拉回数据库的名称; 任何帮助是极大的

  • 问题内容: 我有一个数据库应用程序。我想使用Java中的命令创建文件。 如果我使用Prepared语句执行它: 然后,如何才能在单个String中获得整个结果。我是Java新手,因此无法找到获取该查询结果的出路,因为它不包含列名。 然后我将使用写入文件。 问题答案: 如果要将实例的内容作为 SQL脚本* 备份 到文件中,则可以直接使用。 * 如果要将其 备份 为 ZIP存档 ,则可以使用。