【问题标题】:DDL changes in last one month for a user in oracleoracle 用户最近一个月的 DDL 变化
【发布时间】:2021-01-23 04:21:04
【问题描述】:

我想知道在 oracle 中的特定日期之后特定用户的 ddl(例如,在表中添加一列)更改?一种策略是查询“user_objects”表。有没有其他方法可以做到这一点?

我还可以找出在特定日期之后所做的 ddl(例如在表中添加的列名)更改吗?

版本 - Oracle Database 12c 标准版版本 12.1.0.2.0 - 64 位生产

【问题讨论】:

    标签: oracle oracle12c ddl


    【解决方案1】:

    在指定日期或之前审核 DDL 报表。使用 DDL 触发器捕获 DDL 语句。使用源代码控制和构建管理系统来跟踪更改历史。或者,如果您碰巧拥有自指定日期以来的所有归档日志,则费力地检查它们以查找 DDL 语句(如果指定日期不是最近的,这将不是一个有趣的练习)。

    否则,不行。您当然可以查看user_objects 中的last_ddl_time。但是有些 DDL 语句不会更改(例如,GRANT 是一个 DDL 语句,当依赖对象上有 DDL 时,PL/SQL 对象会自动重新编译,等等)这将更新 last_ddl_time 而不是大多数人们会考虑改变。除非您启用审核,否则数据字典将无法告诉您是什么 DDL 导致 last_ddl_time 更改,因此您将不知道这是否是您认为更改的内容,是否有多个更改,或者这些变化是什么。如果您足够幸运,您的新列有一个索引,您可以通过查看相关索引的创建日期来推断它是何时添加的。

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      相关资源
      最近更新 更多