第一次發文章
Unexpected error committing the database connection
java.lang.ArrayIndexOutOfBoundsException: 3
最近幾天在搞Kettel工具,因爲客戶是做生物信息分析的,所以對於一些數據來說,對數據庫表的要求比較特殊,比如一個表可能要100多個字段,其中有20個左右是CLOB的,而且數據量灰常大,基本一次會上傳幾十萬條數據上去做分析,所以我們採用了臨時表的辦法,先用Kettel工具將csv文件裏的大量數據導入oracle數據庫的一張臨時表,再去java程序裏寫邏輯,不再廢話,以下是我使用Kettel遇到的幾個問題:
①
一直顯示 在運行 ,可能不是因爲數據量大,因爲error裏也一直在輸出,所以是有問題的
②
接下來換了一個只有500條數據的CSV,還是報錯,error已經執行完,但是沒有輸出任何東西
③
下面又換了一個只有100條數據的CSV,並且修改Spoon的內存配置(就是Spoon.bat,安裝Kettel後根目錄data-integration下的啓動文件,詳細配置可以再百度一下,很簡單),依舊插入不了
java.lang.ArrayIndexOutOfBoundsException: 3,數組下標越界,雖然看得懂,但是找不到原因
前前後後,減少條數,重新修改數據庫字段,修改Kettel批量提交數量,修改數據,都沒得用,
第二天無意百度到一個答案,說是最初配置的jar包一定要和你操作的數據庫jar包版本一致,於是找到oracle目錄下的jar包
ojdbc14-10.2.0.2.jar(我配置在kettel目錄下的,data-integration\libswt)
ojdbc14-10.2.0.4.jar(oracle目錄裏面的)
果斷替換,重啓Kettel,測試成功!
5萬條數據,19s
替換jar包是要把jar包放到你的系統相應文件夾下