我有几个Oracle模式,包括相同的PL / SQL包和包体。
如果我在一个模式中的一个包中进行更改,那么将这些相同的更改移动到所有其他模式的最佳方法是什么?
我可以从一个模式中复制PL / SQL代码,然后将其粘贴到另一个模式并在那里进行编译,但如果必须这样做几十次,那对我来说似乎不合适。
答案 0 :(得分:1)
没有相同代码的多个副本。
使用:
GRANT EXECUTE ON USER_NAME.PACKAGE_NAME TO OTHER_USER;
允许一个用户拥有代码,但允许其他用户执行代码。
如果您需要以调用用户身份运行过程,请在程序包内的过程中设置invoker's rights to AUTHID CURRENT_USER
而不是默认值AUTHID DEFINER
。
然后你只需要维护一个包的副本。