본문으로 바로가기

   

 

이번 글에서는 ORA-01858: 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다. 에러 해결 방법에 대하여 알아보겠습니다.

 

ORA-01858: 숫자가 있어야 하는 위치에서 숫자가 아닌 문자가 발견되었습니다.

ORA-01858: "a non-numeric character was found where a numeric was expected"

 

 

쿼리를 짜다가 아래와 같은 에러가 발생하였습니다.

 

 

예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.

아래의 쿼리는 현재시간을 DATE형으로 변환해보려고 작성한 예제입니다.

 

위의 쿼리를 실행하니 ORA-01858: "a non-numeric character was found where a numeric was expected" 에러가 발생하였습니다.

에러가 발생한 이유는 TO_DATE는 숫자타입을 날짜타입으로 변환시켜주는 형변환 함수입니다. 그렇게 되면 컬럼명에 숫자값이 와야합니다.

즉, 첫 번째 인수로 숫자값이 아닌 문자값이 들어가서 발생한 에러였습니다.

여기서 말하는 숫자값은, '2020' 도 가능합니다.  문자형이지만 숫자로 인식되기 때문이죠.

 

해결 방법

첫 번째 인수로 숫자값 혹은 문자형태의 숫자값을 적어주시면 됩니다. EX) 2020, '2020']

 

첫 번째 인수로 숫자를 주고 쿼리를 다시 실행해 보도록 하겠습니다.

 

첫 번째 인수로 숫자 20200808 적으니 정상적으로 작동하는 것을 확인하실 수 있습니다.

 

 

Reference

[Oracle] TO_DATE() - 문자열을 날짜형으로 변환하는 방법