1. WAS 버전 : WebSphere ND v6.1.0.23
2. OS : AIX v5.3
3. Error message :
[09. 5. 21 17:45:07:474 KST] 00000030 WebApp E [Servlet
Error]-[/db2.jsp]: com.ibm.db2.jcc.a.io: [jcc][1091][10404][3.57.40]
Invalid data conversion: Parameter instance is invalid for the requested
conversion. ERRORCODE=-4461, SQLSTATE=42815
4.예상 이유 : DB2로 요청된 Data conversion 이 잘못 요청된 경우.
예를들어 하단의 code 의 경우
String q_select = "SELECT c1,c2 FROM db2.JEY WHERE C2=?";
......
pstmt = conn.prepareStatement(q_select);
pstmt.setString(1, "");
rs = pstmt.executeQuery();
C2 의 Data type 은 Integer 이기 때문에 Integer를 요구하고 있는데
Integer 가 들어갈 수 있는 공간에 Null 값을 넣을려고 빈칸을 setString() 메소드로 입력하였으나
이 경우 입력되는 "" 값이 Null 이 아니라 empty String 이기 때문에 Exception 발생
5. 조치 방안 : Data type 과 맞는 형의 Data 를 입력하게끔 하거나 Null 값을 넣어야 하는 경우에는
setNull(1, java.sql.Types.INTEGER) or setString(1, null) 형식으로 "" 빈 String 이 아닌 Null 을 넣어준다.
IBM - old/WAS 문제&해결
댓글