메모용 개발 블로그
  • Home

Categories

  • All Posts116
  • OS35
    • Linux23
    • MacOS8
    • Windows4
  • 데이터베이스3
    • Oracle1
    • Postgresql1
  • Develop26
    • CSS33
    • Go8
    • HTML52
    • Java1
    • JavaScript4
    • React2
    • Svelte2
  • 개발일기10
  • Docker1
  • Git3
  • GitLab12
  • Nginx7
  • 기타16
  • 이 블로그의 오픈소스3
Oracle•2022년 6월 14일

Oracle ORA-06512 varchar2에서 date 묵시적 형변환에 의한 오류사례

Table of Contents

  • Oracle ORA-06512 varchar2에서 date 묵시적 형변환에 의한 오류사례
  • 오류 내용
  • 해결
  • 특이사항
  • 특이사항의 원인
  • 결론

이번에 발생한 오류 사례와 원인에 대해서 간략하게 공부하여 메모해두는 글 입니다.

오류 내용

다른 개발자의 INSERT 쿼리에서 오류가 발생하여 로그를 확인한 결과 아래와 같은 오류가 발생

ORA-01861: literal does not match format string

해결

date 타입의 컬럼에 varchar2 타입의 데이터를 넣은 간단한 문제이므로 date타입으로 변경하여 해결

특이사항

로그에 찍힌 쿼리를 DB 클라이언트(Datagrip)에서 쿼리하거나 로컬에서 빌드&실행한 서버에서는 쿼리 오류 없이 정상 동작하나 운영&개발 환경에서 오류가 발생함.

특이사항의 원인

클라이언트의 언어 설정에 따라 varchar-date간의 묵시적 형변환 시 설정된 날짜 포맷값이 달라 각 환경에 따라 다른 결과가 발생함.

로컬 환경은 한국의 포맷값이므로 묵시적 형변환이 정상으로 되어 값이 INSERT 되었으며, 배포 환경에서는 타 언어로 설정되어 오류가 발생한 것.

결론

로컬과 배포 시 환경을 통일 시키면 문제가 발생하지 않겠으나, 묵시적인 date 타입 형변환을 지양하고 명시적으로 형변환을 시켜주는 것이 바람직하다고 생각됨

← Back to all posts