2010-09-03 62 views
0

我有一個WebObjects應用程序,Openbase數據庫,並且在批處理操作期間執行原始行(非ORM)查詢時遇到了前所未見的異常。它看起來像jdbc適配器在db中拋出一個日期值,並且無法將原始數據強制轉換爲正確的類型。它從字面上殺死了應用程序並結束了導出過程。下面是從跟蹤的前兩名相關線路:jdbc中帶有Date值的IllegalArgumentException; Openbase sql

java.lang.IllegalArgumentException 
at java.sql.Date.valueOf(Date.java:138) 
at com.openbase.jdbc.f.getDate(Unknown Source) 

我試圖改變從日期列類型,日期時間到時間戳,並相應地調整EO模式,但例外仍然存在。我想知道我能做些什麼來解決這個問題,特別是如果有人知道我可以使用更復雜的查詢機制來識別可能的壞行? Openbase的文檔非常稀少,我希望也許有人知道如何使用模式來識別可能使用openbase sql的錯誤值。或者用其他方法來確定問題。謝謝。

+0

我剛剛發現,通過痛苦的小集查詢,具有像日期格式''001-12-31 12:00:00 -0500'行的負載我發現這非常可疑,所以我做了一個簡單的測試沒有錯誤; openbase和jdbc適配器根本沒有抱怨這些行。此外,每個文檔使用類似「-001%」的功能不起作用。也許就像在openbase中不能使用時間戳一樣。瘋狂地難倒了... – wkhatch 2010-09-03 01:07:58

回答

0

原來的問題是由於Openbase版本和java版本之間的版本不匹配造成的。不幸的是,我別無選擇,只能重寫轉儲例程以使用批量保存openbase函數,然後解析出生成的csv。有趣的是,導致問題的日期印刷得很好,從而節省了更多的行。總結:堅持開源的數據庫的;除非你走高端路線,否則像Openbase這樣的解決方案已經沒有什麼優勢了。