通过Java API获取NUMBER列的比例和精度?

时间:2017-08-03 15:02:14

标签: java jdbc oracle11g ojdbc

我对Oracle DB有疑问。假设我有一个NUMBER类型的列。如何通过Java API获取此列的精度和规模?

非常感谢。

2 个答案:

答案 0 :(得分:2)

假设您已经拥有$2,您可以获取应提供所需数据的元数据:

ResultSet

如果您没有int column = ... // first column is 1 !! ResultSet rset = ... ResultSetMetaData metadata = rset.getMetaData(); int precision = metadata.getPrecision(column); int scale = metadata.getScale(column); ,只需执行不返回任何行的SQL语句:

ResultSet

元数据提供的更多详细信息:ResultSetMetaData

答案 1 :(得分:2)

您甚至不需要创建查询。您可以使用DataBaseMetaData。然后找出有关您的数据库的所有信息。 (见http://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html

DataBaseMetaData dmd = connection.getMetaData();
ResultSet rs = dmd.getColumns("DB-Name", "Schema-Name","TableName","ColumnName");
System.out.println("Type Name: " + rs.getString(6) + "\n" +
"Column Size: " + rs.getInt(7) + "\n" +
"Decimal Digits: " + rs.getInt(9) + "\n" +
"Radix: " +  rs.getInt(10) + "\n" );

您可以通过DataBaseMeta收集大量信息。它在Java-API-Docs上有很好的文档记录。 当您扫描大型数据库时,请注意它可能会消耗大量资源。