当前位置: 代码迷 >> Oracle开发 >> oracle中,怎么获取到最新插入的一批记录
  详细解决方案

oracle中,怎么获取到最新插入的一批记录

热度:93   发布时间:2016-04-24 06:28:48.0
oracle中,如何获取到最新插入的一批记录
有一个表,会被不定时地插入数据,现在有个需求,需要定时从这个表里获取数据,期望得到的数据是“自上次获取后最新插入的”,但这个表本身没有任何字段可以作为依据,而且不能修改表。
现在请问,在这种情况下,还有没办法可以获取呢?
------解决思路----------------------
可以给表加触发器吗?
建立一个临时表,给原表增加触发器,原表插入数据同时插入临时表
获取数据时从临时表获取数据范围,临时表存储原表的主键和插入时间即可
每次获取数据处理完成后将将已经处理的数据从临时表中清除
------解决思路----------------------
可以通过表的伪劣ora_rowscn标识一条记录dml操作的时间,伪劣ora_rowscn可以和时间进行转换
 SELECT SCN_TO_TIMESTAMP(13919238) FROM dual;
------解决思路----------------------
引用:
有一个表,会被不定时地插入数据,现在有个需求,需要定时从这个表里获取数据,期望得到的数据是“自上次获取后最新插入的”,但这个表本身没有任何字段可以作为依据,而且不能修改表。
现在请问,在这种情况下,还有没办法可以获取呢?

如果不能从这个表的字段来找参考,那么就只有通过建立临时表来实现了。
------解决思路----------------------
引用:
可以通过表的伪劣ora_rowscn标识一条记录dml操作的时间,伪劣ora_rowscn可以和时间进行转换
 SELECT SCN_TO_TIMESTAMP(13919238) FROM dual;

这方法不错,赞一个
------解决思路----------------------
引用:
可以通过表的伪劣ora_rowscn标识一条记录dml操作的时间,伪劣ora_rowscn可以和时间进行转换
 SELECT SCN_TO_TIMESTAMP(13919238) FROM dual;

但是这方法如果进行备份再通过数据文件进行恢复的话,这个伪列的值是不是应该就变了啊
------解决思路----------------------
可以建立临时表,通过触发器当数据更新时,将更新的数据插入临时表中存储
------解决思路----------------------
可以根据rowid进行判断
  相关解决方案