oracle强大的功能能够支持恢复被删除的数据。恢复被误删的数据只能一次。
执行步骤:
1.查询最近更新数据之前的数据,这是用来确定是不是Commit之前的数据
select * from tablename as of timestamp to_timestamp('2019-03-18 11:02:00', 'yyyy-mm-dd hh24:mi:ss');
其中tablemane为被误操作的表,'2019-03-18 11:02:00'表示上次更新数据前的时间
2.闪回操作前启用行移动功能 强调:一定要执行这步操作
alter table tablename enable row movement
3.执行闪回语句:
flashback table tablename to timestamp to_timestamp('2019-03-18 11:02:00', 'yyyy-mm-dd hh24:mi:ss');
到此就能恢复被删除的数据。
拓展:
1.alter table 语句用于在已有的表中添加、修改或删除列
在表中添加列 :alter table tablename add column_name datatype 其中tablemane为操作的表,column_name为字段名,datatype为数据类型 ; 比如 alter table student add birthday date 新列 "Birthday" 的类型是 date,可以存放日期。
在表中删除列:alter table tablename drop column column_name 其中tablemane为操作的表,column_name为字段名
注意:某些数据库系统不允许这种在数据库表中删除列的方式
在表中修改列:alter table tablename alter column column_name datatype
2.字符型转换为timestamp
select to_timestamp('18-3月-19 07.46.41.00 上午','dd-mon-yy hh:mi:ss.ff AM') from dual