select ROUND(MONTHS_BETWEEN(SYSDATE,to_date(replace(A.EMPL_BIRT,'.','')))/12) AS AGE
from dual;
문제상황:
[Error] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음
String형을 DATE형으로 변환시켜 주거나 DATE형을 String 형으로 변환시켜 줘야 함.
이게 아니라,
알고 봤더니, empl_birt 에 2099년 11월 11일 의 데이터가 들어가 있어서 계속 해서 리터럴 형식 오류가 났다.
처리내역:
GPT한테 물어보니깐 ORDER BY 가 문제였다.
예, ORDER BY 절도 오류의 원인이 될 수 있습니다. ORDER BY 절에 사용되는 컬럼의 데이터 형식이 TO_DATE 함수의 형식과 일치하지 않으면 오류가 발생할 수 있습니다.
만약 EMPL_BIRT 칼럼을 DATE 형식으로 변환한 후에 정렬하려고 한다면 ORDER BY 절도 수정해야 합니다. TO_DATE 함수를 사용하여 날짜를 변환한 후에 정렬하도록 ORDER BY 절을 수정할 수 있습니다.
다음은 ORDER BY 절을 수정한 예시입니다:
SELECT TO_DATE(EMPL_BIRT, 'YYYYMMDD') AS converted_date
FROM A
ORDER BY TO_DATE(EMPL_BIRT, 'YYYYMMDD');
위의 쿼리에서는 EMPL_BIRT 칼럼을 DATE 형식으로 변환한 후에 정렬하도록 ORDER BY 절을 수정하였습니다. 이를 통해 데이터의 형식이 일치하지 않아 발생할 수 있는 ORDER BY 관련 오류를 해결할 수 있습니다.
😊 잘못된 내용이 있다면 언제든지 댓글로 남겨주세요 😊
728x90
반응형
LIST
'Error > Database' 카테고리의 다른 글
[Error/MSSQL] 문자열 또는 이진 데이터는 잘립니다 (0) | 2025.04.01 |
---|---|
[Error/Oralce] ORA-06502: PL/SQL: numeric or value error: character string buffer too small (0) | 2024.09.24 |
[Error/Oralce] ORA-01652: unable to extend temp segment by 128 in tablespace TEMP (임시 세그먼트를 확장할 수 없음) (0) | 2024.08.30 |
[Error/Oralce] 스케쥴 잡 강제 실행 후 스케쥴 실행이 되지 않을때 처리 방안 (0) | 2024.08.05 |
[Error/Oralce] ORA-00911: 문자가 부적합합니다 (0) | 2021.09.05 |
댓글