使用 JDBC 检测 INTEGER 列的可靠方法 (Oracle 19c)

问题描述 投票:0回答:1

在我的 Oracle 19c 环境中,JDBC 驱动程序返回

java.sql.Types.NUMERIC
作为创建为 INTEGER 的列的列类型。 JDBC 元数据指示精度为 38,小数位数为 0。

检查

precision == 38
scale == 0
是检测列是否可能创建为 INTEGER 的唯一方法吗?

(使用标准 JDBC 元数据,无特定于供应商的 JDBC 元数据扩展)


相关: Oracle DB 使用 JDBC 返回负小数位数和 0 精度

oracle jdbc integer oracle19c
1个回答
0
投票

没有单独的

INTEGER
数据类型。
INTEGER
NUMERIC(38)

的别名

这记录在 SQL 数据类型文档中:

表 6-2 转换为 Oracle 数据类型的 ANSI 数据类型

ANSI SQL 数据类型 Oracle 数据类型
INTEGER

INT

SMALLINT
NUMBER(38)

因此,如果您将列设置为 ANSI 数据类型

INTEGER
那么 Oracle 在幕后实际上会将该列设置为
NUMBER(38)

© www.soinside.com 2019 - 2024. All rights reserved.