Exemplos
Restaurar uma tabela para um estado anterior: ExemplosOs exemplos abaixo criar uma nova tabela,
employees_demo
, com movimento de linha ativado, atualizar valores dentro da nova tabela, e emitir o
FLASHBACK TABLE
comunicado.
Criar tabela
employees_demo
, com movimento de linha habilitada, a partir de tabela
employees
da amostra
hr
esquema:
CREATE TABLE employees_demo
ENABLE ROW MOVEMENT
AS SELECT * FROM employees;
Como referência, listar os salários inferiores a 2500:
SELECT salary
FROM employees_demo
WHERE salary < 2500;
SALARY
----------
2400
2200
2100
2400
2200
Nota:
Para dar tempo para o SCN para propagar a tabela de mapeamento usado pelo FLASHBACK TABLE declaração, espere um mínimo de 5 minutos antes de emitir a seguinte declaração. Esta espera não seria necessária se uma tabela previamente existentes foram usados neste exemplo. |
Emitir um aumento salarial de 10% aos funcionários que ganham menos de 2500:
UPDATE employees_demo
SET salary = salary * 1.1
WHERE salary < 2500;
5 rows updated.
COMMIT;
Como referência segunda, listar os salários que permanecem menos de 2500 na sequência do aumento de 10%:
SELECT salary
FROM employees_demo
WHERE salary < 2500;
SALÁRIO
----------
2420
2310
2420
Restaurar a tabela
employees_demo
ao seu estado de um minuto antes da hora do sistema atual:
FLASHBACK TABLE employees_demo
TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' minute);
Listar esses salários inferiores a 2500. Após o
FLASHBACK TABLE
comunicado emitido, esta lista deve coincidir com a lista na primeira referência.
SELECT salary
FROM employees_demo
WHERE salary < 2500;
SALÁRIO
----------
2400
2200
2100
2400
2200
Recuperando uma tabela descartada: ExemploSe você acidentalmente deixar cair o
hr.employees
tabela e deseja recuperá-lo, emitir a seguinte declaração:
FLASHBACK TABLE employees TO BEFORE DROP;
Se outra
employees
tabela foi criada na
hr
esquema, use a
RENAME TO
cláusula para renomear a tabela acessado:
FLASHBACK TABLE employees TO BEFORE DROP RENAME TO employees_old;
Se você sabe que a tabela de funcionários foi derrubado várias vezes, e você deseja recuperar a versão mais antiga, consultar o
USER_RECYLEBIN
tabela para determinar o nome gerado pelo sistema e, em seguida, usar esse nome no
FLASHBACK TABLE
comunicado. (Sistema de nomes gerados em seu banco de dados diferentes daqueles mostrados aqui.)
SELECT object_name, droptime FROM user_recyclebin
WHERE original_name = 'employees';
DROPTIME OBJECT_NAME
-------------------------------------------------
RB $ 45703 $ $ TABELA $ 0 2003-06-03:15:26:39
RB 45704 $ $ $ $ 0 TABELA 2003-06-12:12:27:27
RB 45705 $ $ $ $ 0 TABELA 2003-07-08:09:28:01