본문 바로가기

SQL4

오라클 복구 쿼리 실수로 delete문을 실행하여 데이터를 지워 당황한 적이 있었는데 다행히 오라클은 복구를 할 수 있는 방법이 있었습니다. 다음은 삭제된 데이터를 조회하는 예시와 복구 방법입니다. 10분 전 데이터 조회 쿼리 SELECT "컬럼" FROM "테이블" AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) 2024년 1월 31일 데이터 조회 쿼리 SELECT "컬럼" FROM "테이블" AS OF TIMESTAMP(TO_DATE('20240131000000', 'YYYYMMDDHH24MISS')) 10분 전 데이터 복구 쿼리 INSERT INTO "테이블" SELECT "컬럼" FROM "테이블" AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10.. 2024. 1. 31.
mybatis 컬럼 누락 현상 스프링부트에서 다음의 설정으로 mybatis를 이용 중 implementation('org.mybatis:mybatis:3.4.4') implementation('org.mybatis:mybatis-spring:1.3.1') Select를 하면 컬럼이 누락되는 현상이 발생했다. 이슈사항을 찾아보니 조회한 컬럼의 모든 값이 null일 경우 map, dto 상관없이 null로 반환하는 듯 하다. 아래는 조회시 반환된 결과이다. [null, {area=서울}, {area=강원}, null, {area=경북}] 그 때문에, gridjs에 바인딩 시, parsing 오류로 화면이 의도대로 출력되지 않았다. 찾아보니 3.2.x 이후에서는 returnInstanceForEmptyRow를 설정하면 되는듯 하다. 아래는.. 2023. 10. 5.
오라클 connect by level 사용법 서비스를 개발하다보면 시간별, 월별 그래프 등을 보여줘야할 때가 있다. 예를들어 과거 1년간의 월별 그래프를 표현한다고 치자. 12개월간의 데이터가 모두 수집되어 있으면 고민할 필요 없이 SQL을 작성하여 그래프를 표현할 것이다. 하지만 수집에 누락이 있다던지의 문제로 인해 데이터가 비어있는 경우가 있을 수 있다. 이럴때는 CONNECT BY LEVEL을 이용하여 미리 시간 데이터를 만들어 놓고 JOIN을 통하여 차트 데이터를 구현한다. 다음은 현재시간을 기준으로 월별, 일별, 년도별을 출력하는 예제이다. - 과거 1년간 월별 출력 SELECT V_MONTH FROM ( SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -LEVEL+1), 'YYYYMM') AS V_MONTH FROM DUA.. 2022. 2. 15.
오라클 날짜 관련 - 현재일자 구하기SELECT SYSDATE FROM DUAL;SELECT CURRENT_DATE FROM DUAL; - DATE형식을 STRING FORMAT으로 변형TO_CHAR( SYSDATE , '데이트형식') FROM DUAL; - 데이트형식CC : 세기YYYY : 년도Y,YYY : 년도에 콤마추가YEAR : 년도를 글자로 변형Q : 분기MM : 달RM : 달을 로마숫자로 표기MONTH : 달을 글자로 변형WW: 년도의 주W : 이달의 주DDD : 년도의 일자DD : 월의 일자D : 주의 일자DAY : 요일DY : 요일의 약자J : Julian Date , 4712BC의 1월1일부터.HH : 시간 (12)HH24 : 시간(24)MI : 분SS : 초SSSSS : 자정이후 경과된 초 - 달의 마지.. 2019. 2. 27.