java确定groovy中Oracle查询结果的数据类型。sql
在开始处理查询结果之前,有没有办法确定查询结果中各个列的数据类型
import groovy.sql.*
rdb = Sql.newInstance('jdbc:oracle:thin:@(conn)',
'usr',
'pwd','oracle.jdbc.driver.OracleDriver')
String query = '''select * from sample_data'''
// Need to know data types of columns here so I can prepare
// for the row processing
rdb.eachRow(query) {
// do something with each row
}
rdb.close()
我想查询Oracle数据字典,但如果您有通用查询,这不是最好的方法-我必须首先从查询创建一些表
# 1 楼答案
要从查询结果集中获取SQL类型,需要结果集的ResultSetMetaData。幸运的是,GroovySQL提供了一种获得它的方法。这有点奇怪,但它是有效的:
在我的示例中,我使用列名作为键,但也可以(更可靠地)使用列索引。返回的SQL类型是java.sql.Types中的SQL类型