暂无图片
分享
scott
2019-11-06
关于数据的删除问题
暂无图片 5M

通过sql*loader,direct=y直接路径的方式导入68w行数据,后来发现导入错了,需要删除刚刚导入的数据,但是数据库没有开启flashback闪回,如何利用undo的机制,删除误导入的数据,能否给出个具体的SQL参考,谢谢!

收藏
分享
3条回答
默认
最新
章芋文

有主键的情况下供参考:

delete from tab where id not in ( SELECT id FROM tab AS OF TIMESTAMP TO_TIMESTAMP('2019-11-06 09:30:00', 'YYYY-MM-DD HH:MI:SS') )

可以尝试的是:

--直接创建新表,然后rename create table TABBAK as select * FROM tab AS OF TIMESTAMP TO_TIMESTAMP('2019-11-06 09:30:00', 'YYYY-MM-DD HH:MI:SS'); --先备份再去处理 create table TAB_BAK1 as select * FROM tab AS OF TIMESTAMP TO_TIMESTAMP('2019-11-06 09:30:00', 'YYYY-MM-DD HH:MI:SS'); create table TAB_BAK2 as select * FROM tab;
暂无图片 评论
暂无图片 有用 0
scott

表没有主键,如果想采用delete的方式,该怎么做?
表比较大,采用CTAS重新建表的方式不太适合。

暂无图片 评论
暂无图片 有用 0
scott
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏