JDBC结果集元数据:获取别名列上的物理列名



我正在使用jdbc执行查询语句(在jruby中)

# made-up example
sql = "select " +
         "c.type as cartype, " +
         "o.id as ownerid, " +
         "o.type as ownertype " +
       "from cars c " +
         "inner join owners o " +
         "on c.vin = o.vin"
# 'stmt' gotten with jdbc-connection.create_statement() 
result_set = stmt.execute_query(sql)
meta_data = result_set.get_meta_data()
col_count = result_set.get_column_count()

我可以通过列索引查询每个列的各种列别名(get_column_name)和表(get_table_name),但是我还需要列的实际/物理名称,没有别名。

我如何获得列的物理/实际名称,因为它在模式中定义("ownerid"列别名是列"id",例如)?

从其他数据库类型的测试来看,这似乎是特定于数据库+驱动程序的。使用mysql get_column_name返回实际/物理列名,而get_column_label返回别名。顺便说一句,两种数据库类型(mysql和sqlite)都通过get_table_name返回物理表名。

最新更新