需要一些关于jdbc元数据的帮助。 我正在使用ResultsetMetaData来获取 Oracle10g 上表的列的元数据。我正在使用ojdbc14.jar。表ID中的字段声明为Number。在运行时使用jdbc读取此字段以获取其元数据属性。 ResultSetMetaData.getColumnClassName()返回 java.math.BigDecimal ,而我期望它是Integer或int或long或Long类型。 我甚至尝试使用语句创建表,并将ID列的 int 类型明确定义为
CREATE TABLE COST_DETAILS ( ID **INT** Primary Key...
但仍然ResultSetMetaData返回ID列的BigDecimal。
有没有办法创建具有任何特定列类型的表,以便它将返回int / long类型?
或者是ResultsetMetaData总是为Oracle返回BigDecimal。
答案 0 :(得分:6)
我认为Oracle数字将始终映射到BigDecimal,因为Oracle不会将它们存储为二进制int,因此这是一个精确的映射。 Oracle datatypes和Oracle JDBC您可以将浮点数作为二进制数
答案 1 :(得分:0)
没有。这取决于司机。
您可以拥有以下内容:
if( class == "BigDecimal" ) {
return "Integer"
} else if ( ....
返回整数而不是bigdecimal。这就是大多数人所做的。