日期:2014-05-17  浏览次数:21039 次

★★★能否获取当前表空间中每一张表的最后更新时间★★★
Oracle中,能否获取当前名空间下,各表的最后更新时间,所谓更新就是说该表有添加编辑删除操作。


------解决方案--------------------
[PHP]
select table_name,to_char(LAST_ANALYZED, 'yyyy-mm-dd,hh24:mm:ss ') from user_tables;
[/PHP]
------解决方案--------------------
如果是10g的话可以使用ORA_ROWSCN。
如:
select scn_to_timestamp(max(ORA_ROWSCN)) from tjincome就能够得到最后提交tjincome事务的时间。
ORA_ROWSCN是根据系统最后更新时间来进行计算。ORA_ROWSCN在默认情况下是采用数据块为单位的,也就是一个数据库块(block)上共享一个ORA_ROWSCN,当数据更新的时候,这个block快的ORA_ROWSCN就会自动更新。所以你表中的数据可能很多行都有相同的ORA_ROWSCN值。
如果想每一行都有其独立的值,可以利用Oracle 9i提供的ROWDEPENDENCIES建表关键字,这个关键字在Oracle9i中是为了增加行依赖性跟踪特性的,支持推进复制。在 Oracle10g中有可以用来做行级别的ORA_ROWSCN用了。用这个关键字建表以后,在每行会增加一个隐藏的COLUMN,所以每行会增加6个 byte的开销,如:create table ttt (id number) rowdependencies
------解决方案--------------------
当然要获得当前用户下的所有表就是:
select * from user_all_tables;
------解决方案--------------------
参考一下:
http://www.qqread.com/oracle/2006/08/s380188052.html