如何找出在Oracle中创建特定表的时间?
在Oracle中,有没有办法找出特定表的创建时间?
同样,有没有办法找出插入/最后更新特定行的时间?
没有找到相关结果
已邀请:
5 个回复
脾萌
将在创建表时告诉您(如果您无权访问DBA_OBJECTS,则可以使用ALL_OBJECTS而不是假设您对表具有SELECT权限)。 但是,从一行获取时间戳的一般答案是,如果添加了跟踪该信息的列,则只能获取该数据(当然,假设您的应用程序也填充了列)。但是,有各种特殊情况。如果DML最近发生(最有可能是在过去几个小时内),您应该能够从闪回查询中获取时间戳。如果DML发生在最近几天(或者您保存归档日志的时间长),您可以使用LogMiner来提取时间戳,但这将是一个非常昂贵的操作,特别是如果您获得许多行的时间戳。如果您使用ROWDEPENDENCIES(而不是默认值)构建表,则可以使用
获取行的最后修改日期和SCN(系统更改编号)。但是,默认情况下,如果没有ROWDEPENDENCIES,则SCN仅处于块级别。
函数也无法将SCN永久映射到时间戳。
功飘
“CREATED”列会告诉您何时创建了对象。 “LAST_DDL_TIME”列会告诉您何时对对象执行了最后一次DDL。 至于何时插入/更新特定行,您可以使用审计列,如“insert_timestamp”列或使用触发器并填充审计表
舜辉
磨标烫徽啪
注意:将'%table_name%'替换为您要查找的表名。
埃庐