博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次Oracle数据库数据找回的过程
阅读量:3947 次
发布时间:2019-05-24

本文共 1053 字,大约阅读时间需要 3 分钟。

  误删数据的前因后果一大堆就不描述了……

  总计删除6条 售后服务处理单,4条销售退货单,下面记录一下数据恢复的过程:

1.

  首先明确我删除记录的两个表分别为:销售退货单(M_RET_SALE)、售后服务处理单(AP_V_RESERVICES),需要注意的是 售后服务处理单 是一个视图(视图本身并不存储数据,视图表中的数据都是来源于基表,所以我虽然使用的delete from 删除语句从视图表中删除了数据,但是实际上是删除了基表中的数据,如果我想恢复视图表数据,实际上只要恢复了基表的数据之后,视图表中的数据自然就出来了),下面我先恢复 AP_V_RESERVICES视图表的基表AP_SERVICES中的数据,把他的数据恢复了视图表的数据就回来了

根据删除条件找到我进行删除操作的时间点(找到删除视图的时间,就相当于找到了删除AP_SERVICES基表数据的时间):

select sql_text,first_load_time,last_load_time from V$SQL where sql_text like '%delete from AP_V_RESERVICES%';

(正好6条delete数据,正是我删除的记录)

在这里插入图片描述
2.

  根据删除的时间点,查询删除时间点前,该表中的数据(根据上面6个delete数据来看,最先删除的那条记录的时间是:2020-10-27 16:35:51,所以该时间点前,即将删除的6条记录都应该在表中):

select * from AP_SERVICES as of timestamp to_timestamp('2020-10-27 16:35:50','yyyy-mm-dd hh24:mi:ss') ;

在这里插入图片描述

也就是说,上图中查出来的数据中,有我即将要删除的那条数据,根据该条数据和其他表的关联关系找到这条数据的独有特征是:DOCNO字段中包含有 PSP2010000078 字符串,所以我要具体找到这条数据可以添加搜索条件:

select * from AP_SERVICES as of timestamp to_timestamp('2020-10-27 16:35:13','yyyy-mm-dd hh24:mi:ss') where docno='PSP2010000044';

找到了该条记录:

在这里插入图片描述

3.

  将该条记录复制为 Insert 语句,再重新插入回AP_SERVICES,就ok了,以此方法,将基表中删除的记录都恢复回来。

转载地址:http://qphwi.baihongyu.com/

你可能感兴趣的文章
jQuery实现html网页顶部自适应导航栏(media)------Sestid
查看>>
鼠标悬停显示下划线(带小特效)------Sestid
查看>>
jQuery 实现input搜索框自动匹配------Sestid
查看>>
Js 实现回车键触发登录,并弹出需要输入信息------Sestid
查看>>
Js字符串和数组方法及使用------Sestid
查看>>
JavaScript常用算法(面试)------Sestid
查看>>
Js或者jQuery实现点击图片出现蒙层并将图片放大在蒙层上------Sestid
查看>>
Js,jQuery事件、效果大全------Sestid
查看>>
CSS块元素、内联元素、内联块元素详解------Sestid
查看>>
Js实现跟随鼠标移动的小球------Sestid
查看>>
HTML图像,链接,列表,表格等详细介绍------Sestid
查看>>
Js实现的俄罗斯方块小游戏------Sestid
查看>>
Js实现贪吃蛇小游戏------Sestid
查看>>
jQuery常用方法(持续更新)
查看>>
原生js实现自定义倒计时效果------Sestid
查看>>
原生js实现生成随机验证码=------Sestid
查看>>
js实现购物时选带属性的商品------Sestid
查看>>
点击出现对应界面(第二个界面可以选择显示内容)------Sestid
查看>>
Js实现炫酷仿抖罗盘时钟------Sestid
查看>>
vivo官网鼠标触碰图片拉长------Sestid
查看>>