실수로 데이터를 삭제하거나 업데이트 했을 때[ commit 후 ]
oracle의 timestamp를 이용하여 데이터를 복구할 수 있다.
**시간이 오래지난 데이터는 복구 불가.
-- 10초전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' SECOND) WHERE 컬럼 = 'A';
-- 10분전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)
-- 3시간전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '3' HOUR)
-- 1일전 데이터 조회
SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '1' DAY)
-- 특정시간 기준으로 데이터 조회
SELECT * FROM USER_TB AS OF TIMESTAMP(TO_DATE('20200605000000', 'YYYYMMDDHH24MISS'));
어떤 데이터가 변경이 되었는지 확인할 때
현재 데이터와 비교할 데이터를 UNION ALL로 묶어서 보기
-- 현재 데이터와 10분전 데이터 비교
SELECT * FROM TEMP_1018 where GOODS_NM = '' UNION ALL SELECT * FROM TEMP_1018 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) where GOODS_NM = '';
'memo > work 🫧' 카테고리의 다른 글
[jquery] html() (0) | 2023.01.31 |
---|---|
[html/css] class의 띄어쓰기 (0) | 2023.01.31 |
[Oracle] Data Dictionary Views (0) | 2023.01.22 |
[Oracle] comment 추가,변경하기 (0) | 2023.01.22 |
[Oracle] tnsnames.ora 경로 (0) | 2022.12.17 |