将h2数据库从h2.db转换为mv.db

时间:2015-06-13 10:29:46

标签: java database jdbc h2

我正在将旧的h2数据库(扩展名为h2.db)转换为较新的mv数据库引擎。 在数据库的某些表中,我遇到了更严格的引擎问题。

只是一个SELECT * FROM确实收到错误,所以使用最新的h2-1.4.187.jar ...我甚至无法打开数据......

错误发生在TimeStampValue:

General error: "java.lang.IllegalArgumentException: timeNanos out of range 86400656000000"; SQL statement:
SELECT * FROM PURCHASES_DIVIDED [50000-187]

我正在使用嵌入式方式。

现在我尝试使用旧jar(h2-1.3.173.jar)

找到行

但是不能完全解决如何查找故障行的方法..因为我在旧数据库中查询的所有内容似乎都有效,并且没有错误被捕获...

任何人都有任何线索如何解决这个问题?

我想在db表中用旧jar选择有问题的行,并在那里修复timestamp字段....然后用新jar打开....

但是我需要找到一种方法来选择它们......

1 个答案:

答案 0 :(得分:2)

我找到了“最好的”解决方案:

使用recover函数时,可以创建sql dump文件,并加载到新数据库。 (还有新版本的jar)。

它会在无法读取的行上生成错误,但其余的都已完成。 因此,损坏的行只会生成错误消息。 从sql转储文件中我甚至可以修复它....很多手工,但是要完成。

仍希望其他人提供更好的解决方案。

相关问题