当在java上运行of of of java
SELECT '' AS COL1, 0 AS COL2 FROM MYTABLE 1=2;
列类型是Types.OTHER
,均用于COL1和COL2。因为很明显的结果集没有任何行。
但是,如果我使用以下查询的结果集中有行集:
SELECT '' AS COL1, 0 AS COL2 FROM MYTABLE;
col1的类型仍然是 Types.OTHER
,但COL2类型为 Types.INTEGER
。就我而言,我需要Types.VARCHAR
,Types.INTEGER
甚至结果是空的。
在DB层或JDBC URL上有任何配置,以获取两个查询的Types.VARCHAR
和Types.INTEGER
。
尝试显式铸造:
SELECT ''::VARCHAR AS COL1, 0::INTEGER AS COL2 FROM MYTABLE;
Postgres JDBC驱动程序9.4.1212报告常数0的类型为Types.INTEGER
= 4,无论是否有结果(这也可能取决于服务器版本(9.4服务器(。
字符串常数仍然报告为Types.OTHER
。对于此类列ResultSetMetaData.getColumnClassName(i)
返回java.lang.String
,因此,如果遇到Types.OTHER
,则可以使用此信息将列识别为字符列。
如果您希望ResultSetMetaData
返回所需的类型,请从GitHub获取来源并修补ResultSetMetaData
进行此翻译。