有没有办法在Oracle中对函数进行版本控制?

时间:2013-10-04 16:18:02

标签: oracle oracle11gr2 oracle12c

在oracle中有一个函数版本吗? - 类似DLL的版本。

我想要这样做的原因是,如果我们发布一个新功能来修复错误,我希望能够轻松判断客户端是否正在运行新功能。

如果没有,那么除了提供版本之外,还有解决方案吗?例如,在过去我们已将函数重命名为_v2并更改了代码以调用使用新名称 - 看起来像是一种过度杀伤。

1 个答案:

答案 0 :(得分:5)

您通常应该在包中使用您的功能。在一个包中,您可以拥有一个返回包体版本的函数:

SQL> select my_package.body_version ver from dual;

VER
---
1.3

每当您发布新版本的软件包时,请递增此函数返回的版本。我们通过让源代码控制系统(PVCS)在函数定义中记录其版本号来自动执行此操作。