我们的 Oracle 环境已有大约 25 年的历史。这些年来,数据结构一直由许多(非 dba)程序员管理。多年来,数据完整性、命名标准、性能、元数据和总体关系数据库概念都没有被考虑在内。现在我们有数千个对象,它们被多个团队使用,影响多个应用程序、界面、任务和报告。我们正在以非常缓慢的速度解决所有这些问题。这个过程将包括更改列名、添加约束、触发器,甚至更改对象名称。人们不喜欢改变,所以建立一套新的标准和指导方针不是一朝一夕的事情。我希望建立对象的基线,对于表和视图,建立列数据。然后,我将构建一个自定义应用程序来帮助人们遵循这些新标准,尽可能“自动化”以确定他们缺少什么,以帮助这变得更加常规。这幅图的一小部分是跟踪对象何时被更改。考虑到需要额外的存储空间以及(即使是最小的)性能损失,我们不想仅仅为了这个目的而在我们的 Oracle 环境中启用审计。
综上所述,对于这个非常小的难题(虽然它不是那么重要,但足够重要,我想这样做),我试图跟踪列名是否发生变化。我无法通过键入列名来跟踪这些变化。我认为它不存在,但值得一试。我正在寻找 Oracle 中表/视图列的唯一标识符列。例如,DBA_OBJECTS.OBJECT_ID
是对象本身的唯一标识符,因此如果对象名称发生变化,我可以将其键入。
DBA_TABS_COLUMNS.COLUMN_ID
仅对特定表是唯一的,并且可以随着您删除列而更改。
如果大家有任何建议,可以纳入我正在采取的总体流程(使用表格、视图和应用程序进行自定义审计以管理变更),那么我愿意接受除审计和上述询问之外的其他建议。
谢谢您的帮助!