ORA-01840: 입력된 값의 길이가 날짜 형식에 비해 부족합니다. (ORA-01840: input value not long enough for date format)

오라클에서 TO_DATE 함수와 함께 날짜 형식을 지정할 때 입력 값과 포맷이 일치하지 않으면 오류가 발생할 수 있습니다.

이번에 살펴볼 ORA-01840: 입력된 값의 길이가 날짜 형식에 비해 부족합니다 오류는 입력 값의 길이가 날짜 포맷보다 짧아서 발생합니다.

ORA-01840: 입력된 값의 길이가 날짜 형식에 비해 부족합니다.

쿼리 예시

SELECT TO_DATE('2001-01', 'YYYY-MM-DD') FROM DUAL;

ERROR at line 1:
ORA-01840: input value not long enough for date format

ORA-01840 오류 원인

입력 값 '2001-01'이 날짜 포맷 'YYYY-MM-DD'에 비해 길이가 부족합니다. 즉, 포맷은 'YYYY-MM-DD' 형태의 10자리 문자열을 기대하지만, 입력 값은 'YYYY-MM' 형태의 7자리 문자열이기 때문이랍니다.

ORA-01840 해결 방법

입력 값의 길이와 포맷을 일치시키기 위해 두 가지 방법이 있습니다. 첫 번째 방법, 입력 값에 더 많은 데이터를 추가하거나, 두 번째 방법, 날짜 포맷을 입력 값의 길이에 맞게 짧게 변경한 후 다시 시도해야 합니다.

1. 입력 값을 포맷에 맞게 수정하는 방법 => 입력 값 '2001-01'을 'YYYY-MM-DD' 형식에 맞게 '2001-01-01'로 수정합니다.

SELECT TO_DATE('2001-01-01', 'YYYY-MM-DD') FROM DUAL;

TO_DATE(
--------
01/01/01

2. 포맷을 입력 값에 맞게 수정하는 방법 => 포맷을 입력 값 '2001-01'에 맞게 'YYYY-MM'으로 수정합니다.

SELECT TO_DATE('2001-01', 'YYYY-MM') FROM DUAL;

TO_DATE(
--------
01/01/01

이 두 가지 방법 중 하나를 사용하면 'ORA-01840' 오류를 해결하고 원하는 결과를 얻을 수 있을 거예요.

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗