gpt4 book ai didi

oracle - 如何查明 Oracle 中特定表的创建时间?

转载 作者:行者123 更新时间:2023-12-03 07:16:59 25 4
gpt4 key购买 nike

在Oracle中,有没有办法找出特定表的创建时间?

同样,有没有办法找出特定行的插入/最后更新时间?

最佳答案

SELECT created
FROM dba_objects
WHERE object_name = <<your table name>>
AND owner = <<owner of the table>>
AND object_type = 'TABLE'

将告诉您何时创建表(如果您无权访问 DBA_OBJECTS,则可以使用 ALL_OBJECTS,而不是假设您对该表具有 SELECT 权限)。

不过,从行获取时间戳的一般答案是,只有添加了列来跟踪该信息(当然,假设您的应用程序也填充了这些列),您才能获取该数据。然而,也有各种特殊情况。如果 DML 发生的时间相对较近(很可能是在过去几个小时内),您应该能够从闪回查询中获取时间戳。如果 DML 发生在最近几天(或者无论您保留归档日志多久),您可以使用 LogMiner 来提取时间戳,但这将是一个非常昂贵的操作,特别是如果您要获取许多行的时间戳。如果您在启用 ROWDEPENDENCIES 的情况下构建表(不是默认设置),则可以使用

SELECT scn_to_timestamp( ora_rowscn ) last_modified_date,
ora_rowscn last_modified_scn,
<<other columns>>
FROM <<your table>>

获取该行的最后修改日期和 SCN(系统更改编号)。但默认情况下,如果没有 ROWDEPENDENCIES,SCN 仅位于 block 级别。 SCN_TO_TIMESTAMP 函数也无法永远将 SCN 映射到时间戳。

关于oracle - 如何查明 Oracle 中特定表的创建时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4442323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com