ORA-01821: 날짜 형식이 부적합합니다.
해당 오류는 영어로 'ORA-01821: date format not recognized'라고 발생합니다. 즉, 정상적으로 인식이 되지 않은(not recognized)것이지요~ 오류를 해결하기 위해 크게 2가지를 점검해 볼 수 있답니다. 해당 부분만 확인하면 웬만한 ORA-01821 오류는 해결할 수 있을 것이니 한 번 따라해 보세요~
- 설정 > 시간 및 언어 > 지역 > 데이터 형식 변경 부분을 확인해 주세요.
- TO_DATE 는 형식 매개변수를 명시적으로 지정하는 것을 추천합니다.
데이터 형식 변경
SYSDATE 를 TO_DATE 로 하면 대개 [ 2022-01-17 ] 과 같은 형식을 예상합니다. 그런데 [ 22-1-17 ] 와 같이 형식이 다르게 보인다면 데이터 형식을 확인해 주세요. [윈도우] > [설정] > [시간 및 언어] > [지역] > [데이터 형식 변경] 에서 확인하실 수 있습니다.
오라클 날짜 형식
그리고 형식 매개변수를 명시적으로 지정하는 것을 추천합니다. 날짜 형식이 부적합한 경우는 다음과 같은 두 가지 상황을 예상할 수 있습니다.
- 날짜 형식을 잘못 입력한 경우
- 날짜 형식을 입력하지 않아서 자동적으로 변환이 될 때, 시스템 데이터 형식으로 변경되어 문제가 된 경우
날짜 형식을 잘못 입력한 경우에는 올바르게 재설정하여 해결할 수 있습니다. 반면, 별도의 날짜 형식을 입력하지 않아서 자동으로 형이 변환된 경우, 보통 시스템 데이터 형식을 따라가는데, 시스템 데이터가 예상치 않게 설정되어 있는 경우에 문제가 발생할 수 있습니다. 일부 운영체제는 다른 프로그램과 연계, 또는 영어로 된 운영체제를 사용하는 경우가 있어서 날짜 형식이 예상과 다르게 설정되는 경우가 있습니다.
--날짜 형식을 적합하게 명시적으로 설정하기
SELECT TO_DATE (SYSDATE, 'YYYY-MM-DD') FROM DUAL