이전에 db2 jdbc driver 버전에 대해 기술한 적이 있다.
JAVA 6 (JDK 1.6) 버전 관점에서 설명을 하고 버전 확인하는 법들을 설명했는데, Driver 버전이 4인 경우와 아닌 경우에 따른JAVA 연동 시의 문제점을 최근에 알게 되었다.
문제점
- JDBC 4.0 (db2jcc4.jar) 으로 DB2와 연동하는 경우 SELECT문의 “컬럼 별명"이 반영되지 않는(무시되는) 현상
원인
- jdbc 4.0 에서는 ResultSetMetaData.getColumnName 과 ResultSetMetaData.getColumnLabel 이 명확히 구분되어
ResultSetMetaData.getColumnLabel 를 사용하지 않는 이상 “컬럼 명"으로 결과 값들이 반환됨
정리
JDBC & SQLJ | getColumnName | getColumnLabel |
버전 4 이전 | 별명 반환 | 별명 반환 |
버전 4 이상 | 컬럼 명 반환 | 별명 반환 |
DB2 V9.5 정보센터를 보면 Application Developer 변경 사항에 이에 대한 언급이 설명되어 있다.
DB2 V9.7 에서도 이에 대해 예제를 들어 설명해 놓았다. (오타가 있어 감안해서 봐야 될 것 같다)
두 버전의 호환 사용방안
(방법1) useJDBC4ColumnNameAndLabelSemantics Connection 설정
(방법2) DataSource property to DB2BaseDataSource.NO (2) 설정
'Note' 카테고리의 다른 글
[SQL] 오라클 호환성 VARCHAR2에 대한 고찰 (0) | 2014.01.07 |
---|---|
[개발] db2dclgn (선언부 생성기) (0) | 2013.12.17 |
[개발] Windows에서 ESQL 컴파일 및 Connect By Siblings (0) | 2013.11.28 |
[SQL] 오라클 호환성에 따른 문자열 길이 변화 (0) | 2013.10.31 |
[보안] 인스턴스 구성변수(dbm cfg) authentication (0) | 2013.10.11 |