兴奋啊,使用oracle的flashback搞定误删数据的恢复

可以解决PLSQL Developer使用delete commit或者没有commit但是退出的情况(退出是默认commit)。

如果删除之后没有commit,并且当时没有退出PLSQL Developer,可以直接使用写入commit图标边的rollback回写

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
Connected as xmv502@NC52
 
SQL> rollback;
 
Rollback complete
 
SQL> FLASHBACK TABLE bd_jobbasfil  TO TIMESTAMP '2012-04-05 14:00:00';
 
FLASHBACK TABLE bd_jobbasfil  TO TIMESTAMP '2012-04-05 14:00:00'
 
ORA-08189: 因为未启用行移动功能, 不能闪回表
 
SQL> alter table bd_jobbasfil enable row movement; 
 
Table altered
 
SQL>  FLASHBACK TABLE bd_jobbasfil  TO TIMESTAMP '2012-04-05 14:00:00';
 
FLASHBACK TABLE bd_jobbasfil  TO TIMESTAMP '2012-04-05 14:00:00'
 
ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 CHAR
 
SQL> FLASHBACK TABLE bd_jobbasfil  TO TIMESTAMP to_date('2012-04-05 14:00:00');
 
FLASHBACK TABLE bd_jobbasfil  TO TIMESTAMP to_date('2012-04-05 14:00:00')
 
ORA-01861: 文字与格式字符串不匹配
 
SQL> FLASHBACK TABLE bd_jobbasfil  TO TIMESTAMP to_date('201204051400','yyyymmddhh24mi');
 
Done
 
SQL> 

done,之后都恢复了,一切搞定。

你可能感兴趣的:(flashback)