暂无图片
oracle中有一张表,对表中的数据每做一次变更都要做留存,要有历史数据,版本控制,有什么比较优雅的做法?
我来答
分享
王语嫣
2021-12-17
oracle中有一张表,对表中的数据每做一次变更都要做留存,要有历史数据,版本控制,有什么比较优雅的做法?
暂无图片 5M

oracle中有一张表,对表中的数据每做一次变更都要做留存,要有历史数据,版本控制,有什么比较优雅的做法?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
摸摸鱼

没什么优雅的做法,CTAS或者数据泵导出备份吧。

暂无图片 评论
暂无图片 有用 0
打赏 0
王语嫣
题主
2021-12-17
只有这样的吗?
摸摸鱼
答主
2021-12-17
通用做法如此,如果特定需求那办法多了去了
DarkAthena

如果你接受查询速度慢,那么可以做一个变更日志表,用触发器记录每次的操作及新的行值,然后通过视图写逻辑,结合日志表及正式表,推算指定时间点的数据全貌

暂无图片 评论
暂无图片 有用 0
打赏 0
薛晓刚

变更多久一次。首先觉得不合理啊,为什么每次都要记录?

那如果每次都这样做,就很残酷了。每次做等于全表备份一次。表就会很多。这是一种做法。

还有就是做完以后,从闪回查出来再备份一次。总之都是备份。区别是做之前备份还是做之后备份。

暂无图片 评论
暂无图片 有用 0
打赏 0
不太冷

1.可以做一个变量表A放要更新的正确数据

2.将需要改动的数据表关联A表,将原数据存放于历史数据表B。

3.再用merge更新原数据表

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle 自动统计信息收集任务 变更问题
回答 1
已采纳
不能限定用户的 在容器数据库中,默认自动统计信息都是开着的,可以在pdb级别关掉自动统计信息.
Oracle数据被人修改了,想知道是哪个IP地址修改的,可以查询吗?
回答 5
使用 LOGMNR分析数据删除时间的归档日志就可以。
执行SHUTDOWN ABORT 命令的结果是什么?
回答 2
已采纳
直接关闭数据库,正在访问数据库的会话会被突然终止,如果数据库中有大量操作正在执行,这时执行shutdownabort后,重新启动数据库需要很长时间,shutdownabort的时候,跟kill进程是一
oracle 一体机的RAC集群的IP地址能修改吗?
回答 1
已采纳
可以修改的。可以更改公网\VIP\ScanIP\私网IP,但不能更改主机名,如果要更改主机名,还不如重建集群。另外,非特殊情况,建议不要修改私网IP。
ECMM 13.5 怎么修改访问后台数据库的端口?
回答 1
已采纳
根据需求改:cd<OMSHOME>/bin./emctlstopoms./emctlconfigomsstorereposdetailsreposconndesc"(DESCRIPTION
Oracle为什么要及时删除不用的触发器?
回答 1
已采纳
触发器定义之后,每次执行触发事件都会激活触发器并执行触发器中的语句。如果需求发生变化,而触发器没有进行相应的改变或者删除,那么触发器仍然会执行旧的语句,从而影响新的数据的完整性。因此,要将不再使用的触
卡在这里一个星期啦,有没有大神帮我看看啊,为什么使用oracle 12c rac共享磁盘,进行分区,为什么共享到第二个节点会少一个盘啊
回答 1
1、节点2使用/usr/sbin/oracleasmscandisks刷新一下2、节点2执行sfdisks,与节点1对比,查看sd设备数量是否一致3、如果节点2存在/dev/sdf而没有/dev/sd
oracle如何统计两个库相同用户下所有对象和表的记录数呢?
回答 7
已采纳
使用下面语句生成表的收集统计信息语句,然后再执行。select&x27;execdbmsstats.gathertablestats(ownname>&x27;||&x27;&x27;&x27;
有关RMAN备份
回答 2
每个系统都不一样,数据量,业务时间,备份时间等等,刚更新了一个,可以参考下。rmanbackupcrontab
Oracle delete大量数据(100w左右)后,库卡死,怎么处理?
回答 2
kill掉进程,并kill使用删除表的查询,delete大量数据后表的统计信息会过期,会导致执行计划改变,无法返回结果;另外,delete会产生大量的归档日志,看空间是否满了,大表建议重定义为分区表进
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~