2014/05/02

[Oracle] JAVA에서 ORACLE의 LOCALTIMESTEMP 사용 시 시간 이상

JAVA + 오라클에서 TO_CHAR(LOCALTIMESTAMP, 'YYYYMMDDHH24MISSFF') 형태로 사용할 때
시간(HH24 부분)이 이상하게 등록되길래(토드에서 확인하면 정상적으로 나옴)
이상해서 찾아보니 JDK버전에 따라 -9시간이 되는 경우가 있다고 한다.
(확인해 보니 정확하게 -9시간으로 등록되어 있었다.)
근데 JDK버전이 아니라 JDBC버전이 맞는거 같은데?

아래처럼 TIMESTAMP WITH LOCAL TIME ZONE 를 사용하여 테이블 생성하면 된다는데
CREATE TABLE 테이블명 (
날짜시간컬럼ID TIMESTAMP WITH LOCAL TIME ZONE
)
날짜컬럼이 VARCHAR2(20)이면 저 방법은 안 될거고... JDBC를 바꿔봐야지 했더니 역시 잘 되었다.

오라클 서버는 10.2 이고 로컬환경에서는 JDBC드라이버를 9i 홈디렉토리에 있던 ojdbc14.jar를 사용하고 있었는데
서버의 홈디렉토리에 있던 ojdbc14.jar를 적용하고 보니 정상적으로 현재시간이 등록되었다.

신기한 건 많기도 하여라...

댓글 없음:

댓글 쓰기