我正在使用jdbc从teradata获取元数据,我想获取所有数据类型。但是,对于包含DECIMAL(10,4)的数据库字段,我无法获得精度。我附上我的代码段。建议将受到欢迎!

 DatabaseMetaData md = con.getMetaData();

    ResultSet tbls = md.getTables(null, schema, name, null);
            if(false == tbls.next()){
                nonExistingRdbmsTables.add(name);
                LOGGER.error("Table with name {} in schema {} does not exists in source database", name, schema);
                continue;
            }

            RdbmsTableMetadata tableMD = new RdbmsTableMetadata();
            List<String> pkList = new ArrayList();
            ResultSet primaryKeys = md.getPrimaryKeys(null, schema, name);
            while(primaryKeys.next()){
                String pk = primaryKeys.getString("COLUMN_NAME");
                pkList.add(pk);
            }
            tableMD.setPkList(pkList);
            LOGGER.info("*****Primary key list for table {} is {}", name, pkList);

            tableMD.setSchema(schema);
            tableMD.setName(name);
            tableMD.setTargetName(targetName);
            tableMD.setTargetSchema(targetSchema);
            List<Column> colList = new ArrayList<>();

            ResultSet cols = md.getColumns(null, schema, name, null);
            while (cols.next()) {
                String columnName = cols.getString("COLUMN_NAME");
                String columnType = cols.getString("TYPE_NAME");
                String columnLength = cols.getString("COLUMN_SIZE");
}


有什么方法可以从jdbc元数据查询精度详细信息?

最佳答案

对于将来的参考者:

int precision = cols.getInt("DECIMAL_DIGITS");


这很好!感谢Alex和Mark。

07-24 16:04
查看更多