SW/Database / / 2024. 11. 24. 23:13

ORA-01861: Literal Does Not Match Format String / 원인과 해결 방법

반응형

ORA-01861 오류 설명

ORA-01861 오류는 날짜 또는 문자 데이터가 지정된 포맷 문자열과 일치하지 않을 때 발생합니다.

데이터 변환 시 형식이 맞지 않을 경우 자주 나타나는 오류입니다.

 

ORA-01861: Literal Does Not Match Format String / 원인과 해결 방법

 

 

ORA-01861 오류 설명

이 오류는 TO_DATE, TO_CHAR, 또는 기타 날짜 및 문자 변환 함수가 사용될 때 입력 값과 포맷 문자열의 불일치로 인해 발생합니다. 예를 들어, 문자열 형식이 'YYYY-MM-DD'로 지정되었으나 실제 값이 'DD-MM-YYYY'인 경우입니다.

오류 원인

ORA-01861 오류의 주요 원인은 다음과 같습니다:

  1. 포맷 불일치: 입력 데이터가 지정된 포맷 문자열과 일치하지 않을 경우.
  2. 암시적 변환: Oracle이 데이터를 자동 변환하려고 시도할 때 잘못된 포맷을 사용하는 경우.
  3. 잘못된 데이터: 날짜 또는 문자 데이터의 형식이 예상과 다를 경우.

해결 방법 및 명령어 예시

ORA-01861 오류를 해결하려면 다음 방법을 시도하세요:

1. TO_DATE 함수의 포맷 문자열 확인

데이터가 올바른 포맷 문자열과 일치하는지 확인합니다:

SELECT TO_DATE('2024-11-21', 'YYYY-MM-DD') AS formatted_date
FROM dual;

예시 결과:

FORMATTED_DATE
---------------
21-NOV-2024

2. 데이터 확인

문자열 데이터가 지정된 포맷에 맞는지 점검합니다:

SELECT '21/11/2024' AS input_date
FROM dual;

3. 암시적 변환 방지

암시적 변환을 방지하려면 명시적으로 변환 함수를 사용하세요:

SELECT *
FROM orders
WHERE order_date = TO_DATE('2024-11-21', 'YYYY-MM-DD');

4. 디버깅

입력 데이터와 포맷 문자열의 일치를 확인하여 오류 발생 지점을 파악하세요. SQL Developer에서 실행하면 오류 메시지가 명확하게 표시됩니다.


간단 요약

  • ORA-01861 오류는 포맷 문자열과 데이터 간의 불일치로 인해 발생합니다.
  • TO_DATE, TO_CHAR 등의 변환 함수에 정확한 포맷 문자열을 사용하여 문제를 해결할 수 있습니다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유