2013-01-10 2 views
0
//Class UserProfileDBUtil.java 

Connection conn = null; 
PreparedStatement statment = null; 
    ResultSet rs = null; 
    try{ 
     String sqlString = "select count(*) from "+AGENCY_SCHEMA_NAME+".AGENCY   WHERE AGENCYCODE= ? and ENABLEDFLAG = ?"; 
     conn = JDBCUtils.getConnection(JDBCUtils.WP_ODS); 
     statment = conn.prepareStatement(sqlString); 
     statment.setString(1, agencyCode.toUpperCase()); 
     statment.setString(2, "Y"); 
     rs =statment.executeQuery(); // SQL Error Line 42 
     while(rs.next()) 
     { 
      if(rs.getInt(1) > 0) 
      { 
       return true; 
      } 
     } 
     log.error("Agency for agency code "+agencyCode+" is not available or not active"); 
    } 

LOG에 SqlEception을 던졌습니다 : 42818, SQLERRMC는 : com.ibm.db2.jcc.b.sf.a에서 com.ibm.db2.jcc.b.sf.e에서 (sf.java:1680)를 = (sf.java:1239) com.ibm에서 com.ibm.db2.jcc.c.jb.a (jb.java:43)에서 com.ibm.db2.jcc.c.jb.h (jb.java:139) 에서 . com.ibm.db2.jcc.b.sf.n에서 db2.jcc.cwa (w.java:30) com.ibm.db2.jcc.c.cc.g에서 (cc.java:161) (sf.java:1219) com.ibm.db2에서 com.ibm.db2.jcc.b.tf.d (tf.java:2294)에서 com.ibm.db2.jcc.b.tf.gb (tf.java:1818) 에서 .jcc.b.tf.X (tf.java:508) at com.ibm.db2.jcc.b.tf.executeQuery (tf.java:491) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement .executeQuery UserProfileDBUtil.isAgencyActive (UserProfileDBUtil.java:42)에서 (WSJdbcPreparedStatement.java:559) 는 "statement.executeQuery()는"단지 내 시스템

+0

는 참고 : 예외 내 시스템에만 던지고있다. webspere app 서버 사용하기 6.1. Connection과 statement는 모두 null이 아닙니다. 코드가 다른 시스템에서 완벽하게 작동합니다. JDK : 웹 스피어의 JDK는 서로 다른 시스템에 6.1 –

+0

, 당신은 잘 때때로 Java 유형 및 SQL 컬럼 유형 간의 매핑의 다른 방법을 의미하는 DB2 JDBC 드라이버의 다른 버전을 사용할 수 있습니다. JDBC 드라이버 버전 수준을 확인하고 여기에 SQL 열 유형을 게시하십시오. – dbreaux

답변

1

당신이지고있어 오류가 -401입니다 which means :

The data types of the operands for the operation operator are not compatible or comparable.

나는 확인하고 있는지 확인하십시오 것 전달중인 매개 변수가 올바른 데이터 유형. 예외를 catch하면 예외 Message 속성을 사용하여 operator이 무엇인지 확인해야합니다. 예 : See here

+0

안녕하세요 .. preparedstmt.setString (1, locale)을 시도하면 오류가 발생합니다. 로케일을 "where locale ="+ locale + "로 설정하면 제대로 작동하므로 setString 메소드와 동일한 데이터 유형을 가진 모든 쿼리에서 문제가 발생합니다 –