티베로 DB에서 쿼리를 실행하면, 아래와 같이 '날짜 형식의 지정에 불필요한 데이터가 포함되어 있다는 에러가 나온다'
java.sql.SQLException: JDBC-5010:Format ends before the entire input string is converted.
자칭 개발 20 + 알파 년차 우리 부장님께서, 이 에러로 고생 좀 하셨다고 해서.. 정리해봅니다.
부장님 20년쯤 하셨는데 그 정도시면 그냥 치킨집 차리세요...
오류 원인
쿼리에 아래와 같은 TO_DATE 변환 함수가 사용되었기 때문인데, 날짜 형식이 YYYYMMDD 'HH24MISS' 와 같이 '시
분 초' 가 포함되어서 현재 세션의 날짜 형식에서 해석할 수가 없기 때문이다.
TO_DATE(TO_CHAR(SYSTIMESTAMP - (12/24),'YYYYMMDDHH24MISS'),'YYYYMMDDHH24MISS')
현재 세션의 날짜 형식은 아래와 같이 조회 해볼수 있다.
SELECT SYSDATE FROM DUAL;
위 쿼리를 실행해보면 아래와 같은 결과를 조회할 수 있다. 날짜 형식이 년,월,일로 되어 있는걸 확인할 수 있다.
아래 쿼리 또한 마찬가지다.
SELECT PARAMETER, VALUE FROM v$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT';
수정
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS';
NLS_DATE_FORMAT의 세션 VALUE 값을 위와같이 변경해준다.
아래쿼리로 다시 조회해보면,
SELECT SYSDATE FROM DUAL;
SELECT PARAMETER, VALUE FROM v$NLS_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT';
다음과 같은 결과값을 얻을 수 있고, 원래 실행하려고 했던 쿼리의 에러도 해결된다.
'SQL > tibero 티베로 & oracle 오라클' 카테고리의 다른 글
오라클 nvl 여러개 (COALESCE, NVL, NVL2, NULLIF) (0) | 2023.09.25 |
---|---|
C# 티베로 접속하는 방법 (Tibero.DataAccess.dll 다운로드/사용법) (0) | 2023.05.31 |
오라클/티베로 CASE문 사용법 (0) | 2023.01.18 |
[Tibero/Oracle] 테이블 생성 일자 조회하기 (0) | 2022.06.29 |
티베로(tibero) DB 구조 (0) | 2022.06.28 |
댓글