编写许多存储过程

时间:2014-06-25 04:30:29

标签: stored-procedures query-optimization oracle-sqldeveloper

我需要编写一个为公司生成报告的长程序。 由于报告涉及要提取的多个数据,因此我编写了许多小程序来获取不同的记录。 是在主程序中编写许多子程序并在主程序中调用它们的写入方法吗?

请帮助或有其他方法可以做到这一点。

1 个答案:

答案 0 :(得分:0)

除非你真的疯狂(**)并构建一个存储过程的'树',每个调用另一个,我没有看到任何问题。

实际上可能会带来好处
  • 维护较小的代码片段更容易
  • (重新)编译较小的存储过程会更快

**:MSSQL中有一个“限制”,即堆栈限制为32个级别。也就是说,如果procedure1调用procedure1_1并且该过程调用procedure1_1_1并且那个调用另一个等等...当你超过32个调用'deep'时,你会收到一个错误。然而,顺序调用多个存储过程不是问题。

唯一要记住的是您正在使用的变量/临时表的上下文。如果你想传递值,你需要使用参数。 (使用`OUTPUT可以用来跟踪例如@rowcount变量。)