包括用不同文件编写的程序来打包PL / SQL

时间:2014-04-10 16:47:37

标签: oracle plsql oracle10g

如果有办法包含程序,我已经搜索了很多答案,这些程序是用不同的文件写成的。

文件夹可能如下所示:

Packages
  |
  Package1
     |
     Procedures
         |
         proc1.sql
         proc2.sql
     package1.sql
...
在package1.sql中的

我希望有包头和正文,但某些程序应该存储在proc1.sql等文件中。

有什么办法吗?
它可能真的有助于大型身体包装或包装有很多程序。

提前感谢:)

1 个答案:

答案 0 :(得分:2)

这是不可能的。必须完成CREATE OR REPLACE PACKAGECREATE OR REPLACE PACKAGE BODY语句 - 它必须包含整个包规范或整个包体。这意味着整个规范必须在单个文件中的单个语句中,并且整个主体必须​​在单个文件中的单个语句中。当然,您可以将标题和规范分成不同的文件,但除非您使用某些预处理工具在将数据块发送到数据库之前重新组装这些块,否则不能将它们分成多个部分。

当一个包足够大以至于单个文件变得难以处理并且有多个子组件可以在逻辑上组合成一个较小的单元时,我强烈怀疑正确的答案是重构打包成多个更小,更集中的包。它非常像一个面向对象的程序员,发现随着时间的推移,他们的一个类已经成长为god object / Winnebago对象,这个对象做得太多,并且真正涵盖了两个或三个对象应该负责的基础。最好咬紧牙关并开始重构,而不是试图通过分解源来解决问题。