2011-03-09 2 views
5

몇 가지 SQL statment againest Oracle 데이터베이스를 쿼리하려고합니다.오라클에서 반환 된 결과 집합을 열 별칭 문자로 유지하는 방법

쿼리는 다음과 같습니다 별칭으로 나를 위해

select part_id partId, part_num partNumber from tbl;

그러나 결과는 설정 메타 데이터를 반환 :

나는 (rsmd.getColumnLable()를 통해) 열 별명을 얻을 JavaResultSetMetaData을 사용하고 있습니다 partidpartnumber 각각 ...

하지만 사용자 별 동일한 문자로 별칭을 가져와야합니다. 오세, 그래서 나는 그것을 각각 partIdpartNumber으로해야한다.

어떻게 수행하나요?

감사합니다. 당신이이 같은 이름을 인용 수있는 오라클 문에 소문자를 유지하려면

답변

14

열 이름과 별명, 경우 기본적으로 문자를 구분하지 않습니다 : 내 테스트에서

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

를 대문자 경우에 반환 된 열 이름 따옴표를 사용하지 않으므로 jdbc 드라이버의 버전에 따라 동작이 달라질 수 있습니다.

+0

부수적으로 따옴표 붙은 별칭은 따옴표 붙지 않은 별칭처럼 정확하게 처리되지 않습니다. 예를 들어 인용되지 않은 별칭으로 주문할 수는 있지만 따옴표 붙은 별칭으로 주문할 수는 없습니다. – rimsky

+2

@rimsky 잘못된 것입니다. 별칭으로 주문할 수 있습니다. 'SELECT 123 AS "를"DUAL ORDER BY BY "로 선택하면"123 "을"A "로 두 번 순서대로 선택합니다. 오라클은 대소 문자를 구분합니다. 그러나 기본 동작은 따옴표로 묶지 않은 식별자를 대문자로 변환하여 대/소문자 구분을 사용자로부터 추상화하는 것입니다. 따옴표 붙은 식별자는 대소 문자를 보존합니다. 그래서 첫 번째는 대문자로 변환되어 두 번째와 일치하기 때문에 식별자 'a' (소문자로 묶이지 않음)와' "A"(대문자로 인용 된)는 동일한 식별자입니다. – MT0