有没有办法在 SAP Hana jdbc 驱动程序中获取转换列的名称?

Is there a way to grab the name of a casted column in SAP Hana jdbc driver?

给定以下查询:SELECT fc as A, sc as B, TO_BIGINT(tc) as C from....

我想从结果集中抓取列名fcsctc
我执行以下操作:

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);
}

但是,当我打印出这些值时,我得到以下信息:

fc

SC B

TO_BIGINT(tc) c

有没有办法忽略使用 jdbc 的转换并从查询中获取实际名称?

对于表达式,默认的列标签是完整的表达式。

该示例显示了一个带有自定义标签 (as C) 的表达式(又名 派生列 *),这就是返回给客户端的内容。这是 SQL 标准行为。

在这方面,所有表达式的处理都是一样的,并且类型转换没有允许“达到原始列的峰值”的特殊处理。

长话短说:您应该将 ColumnLabel 视为预期的列名称。

如果您绝对 want/need 从结果集中获取基列并且您可以接受所有限制,那么您可以手动解析 getColumnName 的结果并挑选出其中的任何内容任何转换函数的括号。

例如如果你得到 TO_BIGINT( abc ),你会寻找 () 之间的任何东西。 这是您可以从结果集中获得的详细信息量。