oracle中误删除数据恢复


情形一:将表中某条数据删除后将其恢复

已知有表TB,字段有BID,BNAME,BSEX,BAGE,表中数据如下:


执行删除语句:DELETE TB WHERE BID='6';表中数据如下:


执行查询语句:查询删除数据之前表中的所有数据
SELECT * FROM TB AS OF TIMESTAMP SYSDATE-1/12;查询结果如下:


现在执行insert语句即可将数据还原到表中:
INSERT INTO TB(
SELECT * FROM TB AS OF TIMESTAMP SYSDATE-1/12
WHERE NOT EXISTS(
SELECT 1 FROM TB T WHERE TB.BID=T.BID));

情形二:将某表删除后恢复(当然这里只是在drop时)
以STUDENT表为例:

执行drop表语句:DROP TABLE STUDENT;
再次查询时报表或视图不存在:

执行以下语句查询删除的记录:
SELECT * FROM RECYCLEBIN;
执行以下语句对删除的表进行恢复:
FLASHBACK TABLE STUDENT TO BEFORE DROP;

猜你喜欢

转载自beijing2008gejun.iteye.com/blog/2035267