關於此錯誤碼已經有一些資料進行了說明(詳見參考),比如可能是因爲DB2版本的問題,使用了不匹配的db2jcc.jar包導致的。
本文所說明的可能導致此異常的原因是:有可能是jdk版本不對。
本文使用的db2jcc.jar包的jdbc驅動程序的版本號是:3.50.152。(使用java -cpdb2jcc.jar com.ibm.db2.jcc.DB2Jcc -version查看)
遠端的DB2服務器版本可能是9.*。
一直在jdk1.7.0_80 x86版本運行相關的應用,由於其他原因,使用了jdk1.8.0_144 x64的版本(修改了環境變量裏的JAVA_HOME),數據庫正常連接,再進行下面時,出現了不同。
在執行以下sql語句時,返回了期望結果:
select count(*) from table_name; |
在執行以下語句時,出現報錯:
select * from table_name; |
使用e.getMessages()返回的報錯信息是:
ConnectionCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [-4220]; [jcc][t4][10199][10462][3.50.152] 必需的字符轉換器不可用。ERRORCODE=-4220, SQLSTATE=null; nested exception is com.ibm.db2.jcc.b.SqlException: [jcc][t4][10199][10462][3.50.152] 必需的字符轉換器不可用。ERRORCODE=-4220, SQLSTATE=null |
無深究……
參考: