본문 바로가기
IBM - old/WAS 문제&해결

Invalid data conversion: Parameter instance is invalid for the requested conversion. ERRORCODE=-4461, SQLSTATE=42815

by freeman98 2016. 5. 6.

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 을 넣어준다.

댓글