【发布时间】:2017-04-27 01:16:48
【问题描述】:
我正在使用 jdbc 从 teradata 获取元数据,我想获取所有数据类型。但是对于包含 DECIMAL(10,4) 的数据库字段,我无法获得精度。我附上了我的代码 sn-p。欢迎提出建议!
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 元数据中查询精度细节吗?
【问题讨论】:
-
您使用的是什么 DBMS?另外,
cols.getInt("DECIMAL_DIGITS")为您提供了什么? -
COLUMN_SIZE和DECIMAL_DIGITS有什么价值? -
DECIMAL_DIGITS 工作正常!多谢你们!这就是我不了解我的信息架构而得到的!
-
Alex 我正在使用 Teradata
-
不客气;也总是建议查看javadoc
标签: java jdbc spring-boot