티스토리 뷰
오라클에서 아래와 같은 오류가 나타났다.
ORA-01861: literal does not match format string01861. 00000 - "literal does not match format string"
문자열과 형식이 맞지 않아서 생기는 오류이다.
Vo같은 객체에 자바의 경우 String으로 선언을 해두고 오라클에 data의 타입을 선언했었는데, 이러한 오류가 나왔다.
위의 오라틀 오류 사이트에서 오류 내역을 본 내용이다.
ORA-01861 literal does not match format string
Cause: Literals in the input must be the same length as literals in the format string (with the exception of leading white space). If the "FX" modifier has been toggled on, the literal must match exactly, with no extra white space.
Action: Correct the format string to match the literal.
똑같이 나오는구나..하고 생각 했다.
오라클에서 SELECT 한 결과값을 받아서 객체에 넣기전에 형식을 바꿔서 받아오면 된다.
혹은, Vo 객체의 형태를 바꾸는 방법도 있다.
TO_CHAR(SYSDATE, 'yyyy-mm-dd') AS REG_DATE
위와 같은 방법으로 치환할 수 있다.
TO_CHAR : 숫자나 날짜를 문자로 변환시켜 준다.
오라클 사용 문서
datetime과 number의 사용 방법이 조금 다르니 읽어봐야 한다.
예제를 살펴 본다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | ALTER SESSION SET TIME_ZONE = '-8:00'; INSERT INTO date_tab VALUES ( TIMESTAMP'1999-12-01 10:00:00', TIMESTAMP'1999-12-01 10:00:00', TIMESTAMP'1999-12-01 10:00:00'); INSERT INTO date_tab VALUES ( TIMESTAMP'1999-12-02 10:00:00 -8:00', TIMESTAMP'1999-12-02 10:00:00 -8:00', TIMESTAMP'1999-12-02 10:00:00 -8:00'); SELECT TO_CHAR(ts_col, 'DD-MON-YYYY HH24:MI:SSxFF'), TO_CHAR(tstz_col, 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM') FROM date_tab; TO_CHAR(TS_COL,'DD-MON-YYYYHH2 TO_CHAR(TSTZ_COL,'DD-MON-YYYYHH24:MI: ------------------------------ ------------------------------------- 01-DEC-1999 10:00:00 01-DEC-1999 10:00:00.000000 -08:00 02-DEC-1999 10:00:00 02-DEC-1999 10:00:00.000000 -08:00 SELECT SESSIONTIMEZONE, TO_CHAR(tsltz_col, 'DD-MON-YYYY HH24:MI:SSxFF') FROM date_tab; SESSIONTIMEZONE TO_CHAR(TSLTZ_COL,'DD-MON-YYYY --------------- ------------------------------ -08:00 01-DEC-1999 10:00:00.000000 -08:00 02-DEC-1999 10:00:00.000000 ALTER SESSION SET TIME_ZONE = '-5:00'; SELECT TO_CHAR(ts_col, 'DD-MON-YYYY HH24:MI:SSxFF'), TO_CHAR(tstz_col, 'DD-MON-YYYY HH24:MI:SSxFF TZH:TZM') FROM date_tab; TO_CHAR(TS_COL,'DD-MON-YYYYHH2 TO_CHAR(TSTZ_COL,'DD-MON-YYYYHH24:MI: ------------------------------ ------------------------------------- 01-DEC-1999 10:00:00.000000 01-DEC-1999 10:00:00.000000 -08:00 02-DEC-1999 10:00:00.000000 02-DEC-1999 10:00:00.000000 -08:00 SELECT SESSIONTIMEZONE, TO_CHAR(tsltz_col, 'DD-MON-YYYY HH24:MI:SSxFF') FROM date_tab; SESSIONTIMEZONE TO_CHAR(TSLTZ_COL,'DD-MON-YYYY ------------------------- ------------------------------ -05:00 01-DEC-1999 13:00:00.000000 -05:00 02-DEC-1999 13:00:00.000000 | cs |
이것때문에 너무 많은 소스를 원인도 모르고 자바 소스만 수정을 했다가 돌리기를 수십번이었다.
그러면 오라클 날짜 형식 변환에 대한 방법을 터득하면 된다.
'SQL 쿼리 > oracle 오라클' 카테고리의 다른 글
오라클 출력될 결과값들을 새롭게 번호 붙이기 ROWNUM (0) | 2017.07.28 |
---|---|
NULL을 제외한 값 얻어내기 (0) | 2017.07.28 |
null 일때 데이터 일괄적용 (0) | 2017.07.28 |
오라클 최대값 (0) | 2017.07.23 |
오라클 developer 에서 mssql 연결 (0) | 2017.07.23 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 맥
- 르프리크
- 토라식당
- Apach
- floating button
- 최고심
- 이클립스
- Lalavel
- SQL
- 톰캣
- 힘냉면록
- jstree
- 메뉴관리
- input
- 조직도관리
- 정규식
- 터미널
- 성수밥
- server.xml
- 위잇딜라이트
- Mac
- html
- node관리
- Tomcat
- 오라클
- Eclipse
- Oracle
- 아파치
- tree로만들기
- 성수뚝떡
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함