JDBC-JTDS 错误?对于日期和时间 (x) 类型的列

2023-12-08

当我尝试从中获取列类型时ResultSetMetaData用方法getColumnTypeName对于类型date and time(x), 我越来越nvarchar。对于其他类型似乎效果很好。这是一个错误吗?和ResultSet getString("TYPE_NAME")看起来还可以。我正在奔跑MSSQL2008

@a_horse_with_no_name

ResultSetMetaData我在执行查询时得到。在这种情况下,我没有任何桌子。这是代码片段

if (resultType == ResultMappingType.QUERY){ // For Query
    Statement statement = con.createStatement();
    ResultSet rs = executeAndValidateQuery(statement, resultName);
    ResultSetMetaData rsMeta = rs.getMetaData();
    for( int i = 1 ; i < rsMeta.getColumnCount()+1 ; i ++ ){
        columnInfo.put( rsMeta.getColumnName(i), rsMeta.getColumnTypeName(i));
    }

}else { //For View & Table
    ResultSet rsColumns = meta.getColumns(catalog, schemaPattern, resultName, null);
    while (rsColumns.next()){
        columnInfo.put(rsColumns.getString("COLUMN_NAME"), rsColumns.getString("TYPE_NAME"));
    }
}
....
private ResultSet executeAndValidateQuery(Statement statement, String query) throws KbValidationException{
    ResultSet rs = null;
    try{
        rs = statement.executeQuery(query);
    }
    catch(SQLException ex){
        throw new KbValidationException(ex.getMessage());
    }
    return rs;
}

这是一个已知的 JTDS 错误,请参阅sourceforge.net/p/jtds/bugs/679

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDBC-JTDS 错误?对于日期和时间 (x) 类型的列 的相关文章

随机推荐