在数据库对象仍在被应用程序使用时升级它们

时间:2014-05-21 14:08:46

标签: database oracle

我喜欢在oracle数据库中升级数据库对象的解决方案,例如alter table,更新版本的更新包等等......而这些对象仍在生产服务器上的应用程序中使用。

我听说过持续整合,但这不是我想要的。

有谁知道升级这些对象的解决方案?

也许您可以提及一个版本左右,然后在使用它时调用您想要使用的版本。

我正在寻找由oracle制造的解决方案而不是发明我自己的课程。我知道我可以发明一些东西来做那样的事情,但这不是我要求的。

2 个答案:

答案 0 :(得分:0)

有一个Oracle Change Management Pack

有一个Oracle create schema构造可以使DDL更改事务性

我认为没有什么可以保持同一个软件包的不同版本,例如SQL Server存储过程中的#。甚至ORACLE,当不支持后隔离时,放弃旧包并创建新包。

向表中添加列应该是透明的,您必须根据过程重建视图,但它或多或少是自动的。即使您使用*,新列也不会出现在视图中。只有当它们被声明为%ROWTYPE时,过程中的记录才会包含新列。

答案 1 :(得分:0)

a_horse_with_no_name是正确的,但没有将其作为答案发布。

所有这一切都可以通过使用基于版本的oracle重新定义来实现。

More info on Edition-Based Redefinition

使用此选项,您可以制作包和视图的版本,以便在完成所有测试时将其投入生产,而无需离线。