java—有没有一种方法可以获取sap hana jdbc驱动程序中强制转换列的名称?

wrrgggsh  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(308)

给出以下查询: SELECT fc as A, sc as B, TO_BIGINT(tc) as C from.... 我要抓取列名 fc , sc , tc 从结果集中。
我做了以下工作:

ResultSet rs = statment.executeQuery(query);
ResultSetMetData rsmd = rs.getMetaData();
for(int i = 1; i <= rsmd.getColumnCount(); i++){
  System.out.println(rsmd.getColumnName(i) + " " + rsmd.getColumnLabel(i);
}

但是,当我打印出这些值时,会得到以下结果:
燃料电池a
学士学位
至比基特(tc)c
没有办法使用jdbc忽略cast并从查询中获取实际名称吗?

eqoofvh9

eqoofvh91#

对于表达式,默认列标签是完整表达式。
该示例显示了一个带有自定义标签的表达式(也称为派生列*)( as C )这就是返回给客户的东西。这是sql的标准行为。
在这方面,所有表达式的处理方式都是相同的,类型转换没有允许“峰值原始列”的特殊处理方式。
长话短说:您应该将columnlabel视为预期的列名。
如果您绝对希望/需要从结果集中获取基列,并且您对所有限制都很满意,那么您可以从中手动解析结果 getColumnName 挑出任何铸造功能的括号内的东西。
e、 g.如果你得到 TO_BIGINT( ) 你在寻找两者之间的任何东西 ( 以及 ) . 这是您可以从结果集导出的详细信息量。

相关问题