| 양쪽 이전 판이전 판다음 판 | 이전 판 |
| dbms:oracle:admin:flashback [2015/06/20 16:50] – [HR 계정으로 AS OF TIMESTAMP] starlits | dbms:oracle:admin:flashback [2025/10/03 22:30] (현재) – 바깥 편집 127.0.0.1 |
|---|
| - <code> export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'</code> | - <code> export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'</code> |
| ==== HR 계정 활성화 ==== | ==== HR 계정 활성화 ==== |
| - <code> SQL> alter user scott identified by oracle account unlock; </code> | - <code> SQL> alter user hr identified by oracle account unlock; </code> |
| - <code> SQL> grant execute on dbms_flashback to scott; </code> | - <code> SQL> grant execute on dbms_flashback to hr; </code> |
| ==== HR 계정으로 접속 ==== | ==== HR 계정으로 접속 ==== |
| - <code> sqlplus scott/oracle </code> | - <code> sqlplus hr/oracle </code> |
| - <code> SQL> select systimestamp from dual; </code> | - <code> SQL> select systimestamp from dual; </code> |
| |
| ==== HR 계정으로 AS OF SCN ==== | ==== HR 계정으로 AS OF SCN ==== |
| - <code> SQL> select dbms_flashback.get_system_change_number() from dual; </code> | |
| - <code> SQL> create table emp2 as select * from emp; </code> | - <code> SQL> create table emp2 as select * from emp; </code> |
| | - <code> SQL> select dbms_flashback.get_system_change_number() from dual; </code> |
| - <code> SQL> select count(*) from emp2; </code> | - <code> SQL> select count(*) from emp2; </code> |
| - <code> SQL> delete from emp2; </code> | - <code> SQL> delete from emp2; </code> |
| - <code> SQL> select systimestamp from dual; </code> | - <code> SQL> select systimestamp from dual; </code> |
| - <code> SQL> select count(*) from emp2; </code> | - <code> SQL> select count(*) from emp2; </code> |
| - <code> SQL> select count(*) from emp2 as of timestamp(to_timestamp('2015-06-20 16:42:00','YYYY-MM-DD HH24:MI:SS')); </code> | - <code> SQL> select count(*) from emp2 |
| - <code> SQL> select count(*) from emp2 as of timestamp(to_timestamp('2015-06-20 16:42:00','YYYY-MM-DD HH24:MI:SS')) where deptno=30; </code> | as of timestamp(to_timestamp('2015-06-20 16:42:00','YYYY-MM-DD HH24:MI:SS')); </code> |
| | - <code> SQL> select count(*) from emp2 |
| | as of timestamp(to_timestamp('2015-06-20 16:42:00','YYYY-MM-DD HH24:MI:SS')) where deptno=30; </code> |
| | - <code> SQL> insert into emp2 select * from emp2 |
| | as of timestamp(to_timestamp('2015-06-20 16:42:00','YYYY-MM-DD HH24:MI:SS')) where deptno=30; </code> |
| | |
| | |
| | ==== HR 계정 flashback version query ==== |
| | - <code> |
| | SQL> create table emp as select * from scott.emp; |
| | |
| | SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; |
| | 2015-06-20 16:57:28 |
| | |
| | SQL> update emp set comm=1234 where empno=7782; |
| | SQL> commit; |
| | |
| | SQL> update emp set comm=3456 where empno=7782; |
| | SQL> rollback; |
| | |
| | SQL> update emp set comm=5678 where empno=7782; |
| | SQL> commit; |
| | |
| | SQL> update emp set comm=7890 where empno=7782; |
| | SQL> commit; |
| | |
| | SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; |
| | 2015-06-20 17:01:08 |
| | |
| | SQL> |
| | set lines 200 |
| | column ename format a10 |
| | column start_time format a20 |
| | column end_time format a20 |
| | |
| | SELECT empno, ename, sal, comm, deptno, |
| | versions_xid AS XID, |
| | versions_operation as operation, |
| | versions_startscn AS START_SCN, |
| | versions_starttime as start_time, |
| | versions_endscn AS END_SCN, |
| | versions_endtime as end_time |
| | FROM emp VERSIONS BETWEEN TIMESTAMP |
| | TO_TIMESTAMP('2015-06-20 16:57:27','YYYY-MM-DD HH24:MI:SS') |
| | AND TO_TIMESTAMP('2015-06-20 17:01:09','YYYY-MM-DD HH24:MI:SS') |
| | WHERE empno=7782 |
| | order by versions_starttime nulls first; |
| | |
| | </code> |