해당 오라클 오류는 데이터 타입이 맞지 않아서 발생합니다.
아래 예를 보시면 TO_CHAR에 문자열 형식의 데이터를 인자로 넘겨줬지만,
이를 문자로 인식하지 않고 숫자로 인식해서 발생하는 오류입니다.
TO_CHAR('20190827', 'YYYYMMDD') // 오류 발생
TO_CHAR(TO_DATE('20190827'), 'YYYYMMDD'), 'YYYYMMDD') // 오류 해결
1
2
|
SELECT TO_CHAR(TO_DATE('20190827', 'YYYYMMDD'), 'YYYYMMDD') AS TEST_DATE
FROM DUAL
;
|
cs |
이 경우 TO_CHAR 함수에 넘겨주는 데이터 형식을 DATE 타입으로 바꾼 뒤에 넘기면 오류가 발생하지 않습니다.
마찬가지로 시간의 경우도 동일하게 변환을 해주면 오류가 발생하지 않습니다.
TO_CHAR('2259', 'HH24MI') // 오류 발생
TO_CHAR(TO_DATE('2259'), 'HH24MI'), 'HH24MI') // 오류 해결
1
2
|
SELECT TO_CHAR(TO_DATE('20190827', 'YYYYMMDD'), 'YYYYMMDD') AS TEST_TIME
FROM DUAL
;
|
cs |
결론: TO_CHAR에 인자를 넘겨줄 때는 문자형이더라도 숫자면 NUMBER로 인식해서 오류를 발생시킨다.
'[개발] Programming > Database' 카테고리의 다른 글
오라클, 컬럼 명으로 테이블 찾는 방법 (ALL_TAB_COLUMNS) (0) | 2019.10.31 |
---|---|
오라클 LISTAGG, 여러 행을 하나의 컬럼으로 합치기 (0) | 2019.09.25 |
오라클, 숫자에 콤마 넣는 방법 (TO_CHAR) (0) | 2019.08.11 |
오라클, VARCHAR2 날짜를 원하는 포멧으로 변경하는 방법 (0) | 2019.08.09 |
오라클 MERGE INTO, INSERT와 UPDATE 한 번에 실행 (0) | 2019.08.02 |
댓글