如果我将N pl/sql包部署到Oracle DB,我可以使它们的编译原子化,即这些包中的更改将在成功编译所有包后应用。可以编译几个Oracle Pl/SQL包是一个原子操作吗?
5
A
回答
3
由于软件包是可编辑的,你可以看看edition-based redefintion。这会给你一个在你的软件包版本之间进行原子切换的方法。
3
CREATE OR REPLACE和ALTER PACKAGE是DDL语句,每个DDL语句都是离散事务。在之前以及在每个DDL命令之后发出一个COMMIT ;这就是为什么DDL没有回滚的原因。
在我看来,你有一个配置管理问题。配置管理和源代码控制是解决问题的方法。在版本控制下保存所有的PL/SQL脚本(只是所有的脚本)。当您部署新版本的某些PL/SQL程序时,也请检查以前的版本(在单独的子目录中,或在您的部署网络系统下有意义的内容)。那么,如果你的软件包的新版本有任何问题,重新部署旧版本是一件小事。
2
这里的其他答案很好(例如,基于版本的重定义,这在11gR2中可用)。
另一个选项由PL/SQL Developer提供,它可以配置为在“真正”编译之前进行测试编译(将包编译为替代名称)。
相关问题
- 1. 是一个比较原子操作吗?
- 2. LINQ GroupBy子句可以包含一个操作吗?
- 3. 写一个原子操作
- 4. 是XMLDocument.Save一个原子操作?
- 5. 是原子变量的多重赋值,是一个原子操作吗?
- 6. 我可以有一个运行几种方法的操作吗?
- 7. Redis的set命令是一个原子操作吗?
- 8. !!boolean是java中的一个原子操作吗?
- 9. Java中的File.rename() - 它是一个原子操作吗?
- 10. 是“云中”gsutil cp的一个原子操作吗?
- 11. 在x86上,bool读/写操作可以不是原子吗?
- 12. 如何编译PLSQL包
- 13. 我可以在Typescript中编写一个演员操作符吗?
- 14. 是FD_SET,FD_CLR ...原子操作吗?
- 15. 你可以添加一个文本视图到一个操作栏吗?如果没有,一个子操作栏?
- 16. 让两个操作原子
- 17. Maude-system可以有一个操作有两个以上的操作数吗?
- 18. 这个说法是一个原子操作?
- 19. OpenMP和C:这个操作必须是原子的吗?
- 20. 嵌套的原子操作保证是原子吗?
- 21. 可以一个MP4文件包含多个电影原子?
- 22. 给方法的ref参数分配一个原子操作吗?
- 23. Oracle plsql - 查询是否可以在plsql if语句中使用?
- 24. 可能一个子域可以在URL中包含另一个子域吗?
- 25. 几个无交易外部系统的原子操作
- 26. F_checksal不是一个过程或编译时PLSQL
- 27. Oracle:可以update_set_clause是子查询吗?
- 28. 我可以为多个操作配置一个MvcSiteMapProvider节点吗?
- 29. 8086处理器标签可以包含多个操作吗?
- 30. 什么操作都是原子操作
同意,似乎测试环境将是一个好主意! – 2010-04-23 10:11:07
的确如此,但问题是,环境就像对冲基金一样。仅仅因为在Test中部署的东西并不能保证它在生产中会这样做。 – APC 2010-04-23 10:27:51