반응형
ORA-01858: 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다.
"a non-numeric character was found where a numeric was expected"
※ 데이터 조회 시 날짜 관련 함수(TO_CHAR, TO_DATE 등)를 사용할 때 자주 발생하는 오류이다.
아래의 예시에 있는 질의문을 실행시켜보면,
SELECT TO_DATE(SYSDATE, 'yyyymmdd') FROM DUAL;
'ORA-01858 : 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다.' 오류가 출력된다.
어떻게 보면 다른 애매모호한 오류 메시지보다 훨씬 직관적이라서 헤맬 필요 없이 쿼리를 수정이 가능하다.
오류가 발생하는 원인은 TO_DATE 함수는 숫자를 문자로 변환해주는 함수인데, 변환하고자 입력된 값에 숫자가 아닌 문자가 입력된 경우이다.
해결 방법은 정말 간단하다.
TO_DATE 함수가 아닌 TO_CHAR 함수를 사용하면 된다.
SELECT TO_CHAR(SYSDATE, 'yyyymmdd') FROM DUAL;
끗
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle | 오라클] ORA-01756 : 단일 인용부를 지정해 주십시오 오류 (0) | 2022.08.18 |
---|---|
[Oracle | 오라클] ORA-00979 : GROUP BY 표현식이 아닙니다. (0) | 2022.08.16 |
[Oracle | 오라클] ORA-01722 : 수치가 부적합합니다 오류 (0) | 2022.08.11 |
[Oracle | 오라클] ORA-12899 : 열에 대한 값이 너무 큼 오류 (0) | 2022.08.10 |
[Oracle | 오라클] ORA-01400 : NULL을 (~) 안에 삽입할 수 없습니다. 오류 (0) | 2022.08.10 |