2015-06-13 88 views
0

我正在將舊的h2數據庫(帶有h2.db擴展名)轉換爲較新的mv數據庫引擎。 在數據庫的某些表中,我有更嚴格的引擎問題。將h2數據庫從h2.db轉換爲mv.db

只是一個SELECT * FROM不會得到一個錯誤,於是有了最新h2-1.4.187.jar ......我甚至不能打開數據了...

錯誤是在的時間戳記:

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

我正在使用嵌入的方式。

現在,我嘗試使用舊罐子(h2-1.3.173.jar)找到行

,但不能完全解決的方式如何找到困擾行..因爲我的所有舊數據庫中查詢似乎工作,並沒有錯誤被捕獲...

任何人的任何線索如何解決這個問題?

我想用老罈子在數據庫表中選擇的困擾行,並修復時間戳字段存在的....而且比用新的jar開放....

但比我需要找到一種方法來選擇他們...

回答

2

我發現了一個「最佳糟糕的」解決方案:

當您使用恢復功能,您可以創建一個SQL轉儲文件,並加載到一個新的數據庫。 (使用新版本的jar)。

它會在它無法讀取的行上生成錯誤,但剩下的事就完成了。 因此,損壞的行只會產生一條錯誤消息。 從sql轉儲文件,我甚至可以修復它....很多手工,但是要完成。

仍然希望有人提供更好的解決方案。