getColumnName()返回别名Oracle

Nik*_*avi 5 oracle jdbc columnname pointer-aliasing

我正在使用ojdbc7.jar从Java连接到oracle.对于走样查询,当我做getColumnName()getColumnLabel()ResultSetMetaData,都将返回别名.我想拥有原始列名.

小智 0

这是不可能的。如果您编写一个将列(或函数)别名为其他名称的查询,则当结果集传递到下一个级别(另一个查询,如在视图中或 JDBC/ODBC 调用中)时,系统拥有的元数据关于该查询的只是别名。

找到原始名称的唯一方法是跟踪正在使用的 SQL 的起源(例如,如果它正在调用视图,则查找视图定义等)。

考虑一个将列别名为其他内容的视图(本质上就是您正在做的事情,因为视图只是按需执行的存储 SQL)。该列的视图定义将只有别名(它实际上以这种方式存储在 dba_tab_columns 中),而不是原始名称。如果不查看视图定义,您就无法知道原始名称。