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");
    }

日志 :

com.ibm.db2.jcc.b.SqlException: DB2 SQL 错误: SQLCODE: -401, SQLSTATE: 42818, SQLERRMC: = at com.ibm.db2.jcc.b.sf.e(sf.java:1680) at com.ibm.db2.jcc.b.sf.a(sf.java:1239) 在 com.ibm.db2.jcc.c.jb.h(jb.java:139) 在 com.ibm.db2.jcc。 c.jb.a(jb.java:43) 在 com.ibm.db2.jcc.cwa(w.java:30) 在 com.ibm.db2.jcc.c.cc.g(cc.java:161)在 com.ibm.db2.jcc.b.sf.n(sf.java:1219) 在 com.ibm.db2.jcc.b.tf.gb(tf.java:1818) 在 com.ibm.db2.jcc .b.tf.d(tf.java:2294) 在 com.ibm.db2.jcc.b.tf.X(tf.java:508) 在 com.ibm.db2.jcc.b.tf.executeQuery(tf .java:491) 在 com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:559) 在 UserProfileDBUtil.isAgencyActive(UserProfileDBUtil.java:42)

4

1 回答 1

1

你得到的错误是 a -401这意味着

操作的操作数的数据类型operator不兼容或不可比较。

我会检查并确保您传入的参数使用正确的数据类型。如果你捕捉到异常,你应该能够使用异常Message属性来查看异常是什么operator。 有关示例,请参见此处。

于 2013-01-10T13:50:50.183 回答