如何从 ResultSet.getMetaData().getColumnType(i) 获取 Oracle SQL 类型的 -101 整数值对应的常量变量名称

How do I get the corresponding constant variable name for the integer value of -101 an Oracle SQL type from ResultSet.getMetaData().getColumnType(i)

如何从 ResultSet.getMetaData().getColumnType(i) 中获取 Oracle SQL 类型的整数值对应的常量变量名称?

常量变量的几个例子如下:

        java.sql.Types.VARCHAR: 
        java.sql.Types.NVARCHAR:
        java.sql.Types.LONGVARCHAR:
        java.sql.Types.LONGNVARCHAR:
        java.sql.Types.NUMERIC:
        java.sql.Types.SMALLINT:
        java.sql.Types.BIGINT:
        java.sql.Types.FLOAT:
        java.sql.Types.DOUBLE:
        java.sql.Types.DECIMAL:
        java.sql.Types.DATE:
        java.sql.Types.TIMESTAMP:
        java.sql.Types.TIMESTAMP_WITH_TIMEZONE:
        java.sql.Types.TIME_WITH_TIMEZONE:

但我得到的特定列的值为 -101,即 TIMESTAMP WITH TZ。顺便说一句,我正在使用 Oracle。

那么,给定 -101 的值,我应该为此使用什么常量变量?我可以看到有类似 oracle.sql.TIMESTAMPTZ 的东西,但它不是整数而是实际类型。

我尝试搜索整个 java.sql.Types,但找不到 -101 的匹配项。

这可能是 JDBC 规范和 Oracle 驱动程序实现之间的误解。

There is an old bug related to this same question on Squirrel's Backlog

要发现 java.sql.Types 中的哪个常量与特定整数值相关,您可以使用反射并循环遍历所有常量并找到匹配的常量。

但在您的情况下,您需要将 oracle 驱动程序返回的 - 101 转换为 TIMESTAMP_WITH_TIMEZONE 常量上指定的 2014 值。