查询一个表插入数据的时间,按BLOCK时间

简介: 用sql语句查看oracle表每条记录的创建时间(ora_rowscn)       有时要查看表中的那条记录是什么时候创建的,有的会去用logminer去查看,有的会用闪回查询,其实很简单,不用那么麻烦,oracle的建每张表时都会建一个...

用sql语句查看oracle表每条记录的创建时间(ora_rowscn)

      有时要查看表中的那条记录是什么时候创建的,有的会去用logminer去查看,有的会用闪回查询,其实很简单,不用那么麻烦,oracle的建每张表时都会建一个隐含的字段ora_rowscn,看到这个字段的名字,有写人会想到scn?对了,oracle在向表中插入记录时会记录插入记录时当前数据库的scn,那么聪明的你很快就会想到,既然有每条记录的scn,那么通过scn不就能查到每条记录的创建时间啦?全对!
      只要一句话,就可以轻松查看表记录的生成时间,相信这个应该会有帮助的!
      举个例子:
      select to_char(scn_to_timestamp(ORA_ROWSCN),'yyyy-mm-dd hh24:mi:ss') insert_time from scott.emp;
      结果将会看到emp表中每条记录创建时的时间。

      默认情况下,每行记录的ORA_ROWSCN是基于Block的,这样是不准确的,除非在建表的时候执行开启行级跟踪(create table … rowdependencies),这样就会是在行级记录scn。
      所以要想查看准确的记录创建时间则在建表时要加rowdependencies选项!

 

 

感谢笔者 http://www.cnblogs.com/xuanyuanvista/archive/2009/08/25/ora_rowscn.html

相关文章
|
7月前
|
SQL
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
153 0
|
8月前
|
缓存 负载均衡 NoSQL
对于大表按主键+时间+group by的这种时间范围聚合查询的场景
对于大表按主键+时间+group by的这种时间范围聚合查询的场景
98 2
|
Oracle 关系型数据库 MySQL
根据一张表更新另一张表
根据一张表更新另一张表
|
SQL
根据时间字段删除一定时间内的记录
根据时间字段删除一定时间内的记录
147 0
|
C++ 索引
C/C++编程题之合并表记录
C/C++编程题之合并表记录
|
SQL 算法 Java
SQL 查找"存在",别再用 count 了,很耗费时间的!
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?
11074 0
SQL 查找"存在",别再用 count 了,很耗费时间的!
|
SQL 关系型数据库
SQL更新部分字段或者插入新数据
SQL更新部分字段或者插入新数据http://www.bieryun.com/3184.html 因为业务的原因,一张表的数据需要整合两张外键关联不强的表数据,这里涉及到更新部分字段或者插入新数据。
1589 0