oracle数据库删表后如何恢复,oracle数据库的表删了怎么恢復

不知道你是 一个表的数据有问题, 还是很多表的数据有问题。

如果只是1个表的话, 还是比较简单的。

下面是一个例子:

SQL> CREATE TABLE test_fb_table ( 2 ID int, 3 VAL VARCHAR2(10) 4 );Table created.SQL> INSERT INTO test_fb_table VALUES (1, 'TEST');1 row created.SQL> commit;Commit complete.假如 数据被错误的删除/更新需要检索某个时间点上,表原有的数据。SQL> SELECT TO_CHAR(sysdate, 'yyyy-mm-dd hh24:mi:ss') FROM dual;TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS'--------------------------------------2010-11-07 13:01:37这里删除掉数据。SQL> delete from test_fb_table;1 row deleted.SQL> commit;Commit complete.确认数据已经被删除。SQL> select * from test_fb_table;no rows selected

这里检索出,指定时间点上,指定表的数据情况。SQL> select * from test_fb_table 2 AS OF TIMESTAMP TO_TIMESTAMP('2010-11-07 13:01:37', 3 'yyyy-mm-dd hh24:mi:ss'); ID VAL---------- -------------------- 1 TEST

对于你来说, 也就是你需要先

CREATE TABLE 临时表 AS

select * from 你的那个数据被删除的表

AS OF TIMESTAMP TO_TIMESTAMP('2013-08-13 14:00:00', 'yyyy-mm-dd hh24:mi:ss');

这样, 就把当初那个时间点上的, 那个表的数据, 复制到一个 临时表 里面去了。

然后再

INSERT INTO 你的那个数据被删除的表 SELECT * FROM 临时表;

注: 你需要确定一下, 那个 数据被删除的表 上面, 有没有触发器什么的。

有的话, 可能需要暂时 禁用掉, 数据插入完了再恢复。

取消

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值