본문 바로가기

오라클DB2

DB에서 한 주의 시작은 월요일이다 일요일 아침, 회사 메신저를 보니 운영중인 서비스에서 날짜와 관련한 오류가 일어나고 있다고 연락이 왔다. 내가 개발/수정을 했던 부분이라 원인 분석을 하고 있었는데, 죄송하고 감사하게도 다른 개발자분이 수정을 해 주셨다.. 우선 해당 오류의 원인은 이렇다. 오라클의 TRUNC함수를 이용해 한 주의 시작일을 구해오는 함수가 있는데 SELECT TRUNC(SYSDATE, 'iw') AS 해당_주_월요일 FROM DUAL; 이 쿼리문은 현재 시간을 기준으로 해당하는 날짜 주의 시작일인 월요일 일자를 출력한다. 만약 현재 시간(날짜)가 2022년 11월 10일이라면 11월 7일을 출력하는 것이다. 오라클 DB(뿐 아니라 다른 DB도)에서 한 주의 시작은 월요일이고, 끝은 일요일이다. 또한 ISO8601기준으로도.. 2022. 11. 13.
오라클 MS949 Characterset에서 이모지 저장 프론트에서 글을 쓰고 저장한 뒤, 다시 글을 불러오는 과정에서 이모지가 ? ? 로 저장이 되는 문제가 발생했다. 프론트 -> 스프링 컨트롤러까지는 값이 잘 넘어오는데 db에 저장되는 순간 이모지가 ? ? 로 바뀌었는데 알고보니 오라클 db의 characterset이 MS949라 유니코드 이모지 저장이 안 되는 것이였다.. MS949가 유니코드 자체를 지원하지 않는 characterset인듯 한데 이미 운영중인 db의 세팅을 UTF-8로 변경하자니 기존 내용들을 전부 변환하기에는 큰 일이고 national characterset이 UTF-16이어서 일부 테이블의 열 속성만 NCLOB으로 변경할까 싶었지만 db쪽은 잘 모르는 상태에서 건드리지 않는게 좋겠다고 생각되어서 결국 백엔드나 프론트에서 해결해야 하는.. 2022. 9. 27.