oracle
在一个表中模糊查询一个词 但事先不知道这个词属于哪个字段,也不知道这个表中有几个字段
1条回答 默认 最新
关注 【相关推荐】
- 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/740116
- 这篇博客也不错, 你可以看下查询Oracle用户表每日增长量
- 除此之外, 这篇博客: oracle误删数据和误删表的恢复方法中的 一、误删数据根据时间来恢复 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
删除前的数据:
删除后的数据:
接下来我们就开始恢复数据
1、查询数据库当前时间,因为有些数据库的时间跟你电脑的系统时间不一致的(如下图),我们需要准确的时间
select sysdate from dual;
2、查询删除数据时间点之前的数据(此时查出来的数据可以加上条件来进行查询,以便查看你删除的数据是否在这个时间点存在)
select * from 表名 as of timestamp to_timestamp('2021-01-31 22:22:11','yyyy-mm-dd hh24:mi:ss');
执行以下语句可以查看全部的数据或者查看自己删除掉的数据,都是为了得到准确的时间点来恢复数据。
执行:select * from table_test as of timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss');
执行:select * from table_test as of timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss') where id in ('3','4','5');
3、拿到恢复的时间点来恢复数据
flashback table 表名 to timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss');
执行:flashback table table_test to timestamp to_timestamp('2021-01-31 22:20:11','yyyy-mm-dd hh24:mi:ss');
执行完上面这段语句,我们就能恢复数据了,但是我们执行之后可能会报错:ORA-08189:因为未启用行移动功能,不能闪回表;
碰到这种情况,我们直接执行下面的语句:
alter table 表名 enable row movement;
执行:alter table table_test enable row movement;
执行完之后我们再执行flashback开头那段语句就能恢复数据了。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥30 模拟电路 logisim
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价