问题遇到的现象和发生背景
使用jdbc连接sybaseiq数据库时,ResultSetMetaData.getColumnType返回2,getColumnTypeName返回null。实际上数据库中该列数据类型为numeric。
用代码块功能插入代码,请勿粘贴截图
使用的driver为:
String Driver="com.sybase.jdbc4.jdbc.SybDriver";
Connection conn = DriverManager.getConnection(url, Userid, Password);;
Statement statement = conn .createStatement();
ResultSet rs = statement.executeQuery(查询语句);
ResultSetMetaData rsmd=rs.getMetaData();
for (int i=1;i<=rsmd.getColumnCount();i++){
System.out.print(i+" :ColumnName is "+rsmd.getColumnName(i)+";");
System.out.print("ColumnType is "+rsmd.getColumnType(i)+";");
System.out.print("ColumnClassname is "+rsmd.getColumnClassName(i)+";");
System.out.println("ColumnTypeName is "+rsmd.getColumnTypeName(i));
}
}
运行结果及报错内容
1 :ColumnName is pmDrbRelAbnormalGnb5qi;ColumnType is 2;ColumnClassname is java.math.BigDecimal;ColumnTypeName is null
我想要达到的结果
columntype =2真正对应的类型是什么?为什么typename的返回值为null?是否可以更改getcolumntypename的返回值?