- 最后登录
- 2017-5-4
- 在线时间
- 81 小时
- 威望
- 999
- 金钱
- 2391
- 注册时间
- 2013-9-11
- 阅读权限
- 150
- 帖子
- 1124
- 精华
- 5
- 积分
- 999
- UID
- 1220
|
1#
发表于 2017-4-17 11:37:19
|
查看: 1804 |
回复: 0
我本来是把数从A插入到另外一个表B,然后再delete A表,但是插入过程中出错,就直接执行了delete A 并且还commit 了,我知道delete后的数据是可以恢复的,等待中。。。。。。
oracle 9i 9.2.0.1 版本
win2003
指点一下,用pl/sql develop 工具的。
insert into hg_cs_detail_backup(workno,workname,card,zc,wc,wancan,yc,yx,rcd_mon,dept)
select tt.workno,tt.workname,tt.card,tt.zc,tt.wc,tt.wancan,tt.yc,tt.yx,tt.rcd_mon ,tt.deptment
from hg_cs_detail tt
where tt.rcd_mon<'2006-06'
COMMIT;
delete hg_cs_detail h where h.rcd_mon<'2006-06'
commit;
第一个commit 报错,直接执行了第二个,然后我的数据就找不到了阿。
SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 8月 15 12:53:37 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL> drop table test;
表已丢弃。
SQL> create table test as select * from hr_employee;
create table test as select * from hr_employee
*
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在
SQL> create table test as select * from syerp.hr_employee;
表已创建。
SQL> delete test;
已删除4053行。
SQL> commit;
提交完成。
SQL> insert into test
2 select *
3 from table test as of TIMESTAMP SYSDATE-1/1440;
from table test as of TIMESTAMP SYSDATE-1/1440
*
ERROR 位于第 3 行:
ORA-00906: 缺少左括号
不对阿,我的数据库是采用非归档模式的是不是和这个有关系呢?期待中。。。
SQL> select * from test as of timestamp(systimestamp - interval'100'second);
select * from test as of timestamp(systimestamp - interval'100'second)
*
ERROR 位于第 1 行:
ORA-08176: 一致的读错误;回退数据不可用
不可以用阿。。。。。
程序没有问题,我单独拿出来试过了,没有问题,
没有恢复,还好这个表的数据试基于另外一个表,执行一个过程生成这个表内数据的,只好重新执行那个过程了,2个月的数据阿,等了好长时间才生成好的。嘿嘿。版主给点提示阿。
SQL> select * from test as of TIMESTAMP SYSDATE-1/1440;
select * from test as of TIMESTAMP SYSDATE-1/1440
*
ERROR 位于第 1 行:
ORA-08176: 一致的读错误;回退数据不可用
回退数据不可以用,是不是和我数据库的模式有关系呢
我用的是非归档的阿。
我是开启的,我现在为了测试这个 新建一个test表,然后delete 然后commit 然后用闪回查询,还是查不到阿。
对于,写2个commit 的地方现在已经修改过来。
在线日志没有被重写,还有办法恢复的。谢谢指正。
|
|