表中数据被 DELETE
· (1) 将参数unload_deleted设置为YES
· (2) 生成数据字典:unload dict
· (3) 恢复表: unload table username.tablename

---模拟误删除
create table t0 as select * from dba_objects;
create table t0_bak as select * from t0;
select count(*) from t0; ---86159
delete t0 where object_id>85000; commit;
select count(*) from t0; ---84141

一:将参数 unload_deleted 设置为 YES
二:生成数据字典

三:恢复表

rename t0 to tt0;
CREATE TABLE "CHEN"."T0"
(
"OWNER" VARCHAR2(30) ,
"OBJECT_NAME" VARCHAR2(128) ,
"SUBOBJECT_NAME" VARCHAR2(30) ,
"OBJECT_ID" NUMBER ,
"DATA_OBJECT_ID" NUMBER ,
"OBJECT_TYPE" VARCHAR2(19) ,
"CREATED" DATE ,
"LAST_DDL_TIME" DATE ,
"TIMESTAMP" VARCHAR2(19) ,
"STATUS" VARCHAR2(7) ,
"TEMPORARY" VARCHAR2(1) ,
"GENERATED" VARCHAR2(1) ,
"SECONDARY" VARCHAR2(1) ,
"NAMESPACE" NUMBER ,
"EDITION_NAME" VARCHAR2(30)
);

四:通过 sqlldr 将数据加载到数据库

5 :验证数据
select count() from t0; ---86159*
select * from t0 where object_id>85000;

......

最后修改:2022 年 02 月 27 日
如果觉得我的文章对你有用,请随意赞赏