Java 如何使oracle返回的结果集保持列别名字符大小写

Java 如何使oracle返回的结果集保持列别名字符大小写,java,oracle,jdbc,metadata,resultset,Java,Oracle,Jdbc,Metadata,Resultset,我正试图查询一些sql语句来访问最新的oracle数据库 我正在使用JavaResultSetMetaData获取列别名(通过:rsmd.getColumnLable()) 查询如下所示: 从tbl中选择part_id partId、part_num partNumber 但是结果集元数据为我返回的别名分别是partid和partnumber 但是我需要获得与用户选择的字符大小写相同的别名,因此我需要分别获得partId和partNumber 如何做到这一点 谢谢。默认情况下,列名和别名不区分大

我正试图查询一些sql语句来访问最新的oracle数据库

我正在使用
Java
ResultSetMetaData
获取列别名(通过:
rsmd.getColumnLable()

查询如下所示:

从tbl中选择part_id partId、part_num partNumber

但是结果集元数据为我返回的别名分别是
partid
partnumber

但是我需要获得与用户选择的字符大小写相同的别名,因此我需要分别获得
partId
partNumber

如何做到这一点


谢谢。

默认情况下,列名和别名不区分大小写,如果要在oracle语句中保留大小写,可以引用如下名称:

select part_id "partId", part_num "partNumber" from tbl;

在我的测试中,列名在不使用引号的情况下以大写形式返回,因此行为也可能取决于jdbc驱动程序的版本。

作为旁注,值得指出的是,带引号的别名与不带引号的别名不完全相同。例如,我可以按不带引号的别名排序,但不能按引号的别名排序。@rimsky这是不正确的-您可以按任何别名排序<代码>通过“a”从双订单中选择123作为“a”将起作用,
通过“a”从双订单中选择123作为“a”
。Oracle是区分大小写的-但是默认行为是将任何不带引号的标识符转换为大写,以将区分大小写的内容从用户那里抽象出来;引用的标识符保留了该情况。因此,标识符
a
(小写未加引号)和
“a”
(大写引号)是相同的标识符,因为第一个将转换为大写并与第二个匹配。