getColumnName()返回别名Oracle

68de4m5k  于 2023-03-29  发布在  Oracle
关注(0)|答案(1)|浏览(155)

我使用ojdbc7.jar从Java连接Oracle,对于带别名的查询,当我做ResultSetMetaDatagetColumnName()getColumnLabel()时,都返回别名,我希望有原始的列名。

sdnqo3pr

sdnqo3pr1#

这是不可能的。如果你写了一个查询,将列(或函数)别名为其他名称,当结果集被传递到下一级(另一个查询,如在视图中,或JDBC/ODBC调用)时,系统拥有的关于该查询的元数据只是别名。
找到原始名称的唯一方法是追踪正在使用的SQL到它的起源(例如,如果它正在调用一个视图,查找视图定义,等等)。
假设一个视图将一个列别名化为其他内容(实际上就是您正在做的事情,因为视图只是一个按需执行的存储SQL)。该列的视图定义将只有别名名称(它实际上是以这种方式存储在dba_tab_columns中的),而不是原始名称。除非查看视图定义,否则您无法知道原始名称。

相关问题