본문 바로가기
IT 개발/에러

[에러] ORA-01861: 리터럴이 형식 문자열과 일치하지 않음

by Dev.Jeon 2023. 2. 23.
반응형

에러메시지 

ORA-01861: 리터럴이 형식 문자열과 일치하지 않음 현상/원인이

 

현상/원인

    INSERT INTO T_TEST
           ( 
               SEQ , 
               CODE , 
               INSERT_DATE 
           ) VALUES ( 
               SEQ_T_TEST.NEXTVAL , 
               '1910006' , 
               '2023-02-07 16:19:34.0'
           )

에러는 대부분 날짜 관련된 에러가 많이 발생합니다. 

DATE타입에 STRING을 넣거나 혹은 반대의 상황에서 발생할 수 있습니다. 

 

1. DATE 타입에 STRING 데이터가 들어와서

INSERT_DATA라는 칼럼의 데이터 타입은 DATE입니다.

그런데 데이터가 DATE 타입이 아니라 STRING이라서 생긴 오류였죠. 2.

 

STRING 타입에 DATE 데이터가 들어와서

혹은 String타입에 DATE 타입을 넣으려고 할 때도 발생하는 에러 입니다.

 

해결

    INSERT INTO T_TEST
           ( 
               SEQ , 
               CODE ,  
               INSERT_DATE 
           ) VALUES ( 
               SEQ_T_TEST.NEXTVAL , 
               '1910006' , 
                TO_DATE('2023-02-07 16:19:34' ,'YYYY-MM-DD HH24:MI:SS')
           )

1. STRING을 DATE 타입으로 변환 

TO_DATE('2023-02-07 16:19:34.0' ,'YYYY.MM.DDHH24:MI:SS')

해당 데이터 형식과 같은 타입으로 해서 String을 DATE타입에 맞게 변형 합니다.

 

2. DATE을 STRING타입으로 변환 

TO_CHAR(SYSDATE ,'YYYY.MM.DDHH24:MI:SS')

마찬가지로 DATE 타입을 원하는 형식에 맞춰서 TO_CHAR를 이용해 변환해줍니다.

 

 

 

 

 

반응형

댓글