oracle을 사용하다보면 삭제한 데이터를 조회하거나 복구해야할 경우가 있다.
그럴땐 TIMESTAMP를 사용한다.
쿼리>
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INVERVAL '시간' 조건(날짜,시,분,초) WHERE 조건문;
사용 예>
1. 10초전 데이터 조회
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INVERVAL '10' SECOND) WHERE 컬럼명 = 'A';
2. 10분전 데이터 조회
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INVERVAL '10' MINUTE) WHERE 컬럼명 = 'A';
3. 10시간전 데이터 조회
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INVERVAL '10' HOUR) WHERE 컬럼명 = 'A';
4. 하루전 데이터 조회
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INVERVAL '1' DAY) WHERE 컬럼명 = 'A';
5. 특정시간 기준 데이터 조회
SELECT * FROM 테이블명 AS OF TIMESTAMP(TO_DATE('20220822000000', 'YYYYMMDDHH24MISS');
6. 10분전 변경된 데이터 비교
SELECT * FROM 테이블명 WHERE 컬럼명 = 'A'
UNION ALL
SELECT * FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INVERVAL '10' MINUTE) WHERE 컬럼명 = 'A';
7. 업데이트 방법
UPDATE 테이블명 a
SET a.ID = (SELECT b.ID FROM 테이블명 b AS OF TIMESTAMP(SYSTIMESTAMP-INVERVAL '10' MINUTE)
WHERE a.NM = b.NM AND b.NM = '1')
WHERE a.NM = '1';
끝
'DB' 카테고리의 다른 글
테이블 사이즈 조회 (0) | 2024.07.25 |
---|---|
orange plan 실행 오류 (0) | 2022.07.22 |
oracle 계정에 속한 전체 테이블 row 수 뽑기 (0) | 2022.07.17 |
ORA-30036 테이블스페이스 확장할 수 없음 오류 (0) | 2022.06.13 |
Oracle 테이블 스페이스 추가 (0) | 2022.06.09 |