【问题标题】:Writing many stored procedures编写许多存储过程
【发布时间】:2014-06-25 04:30:29
【问题描述】:

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

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

【问题讨论】:

  • 报告的生成时间没有特别的限制,但由于是离线报告,预计应该在一两个小时内获取数据。

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


【解决方案1】:

除非你真的疯狂 (**) 并构建一个存储过程的“树”,每个存储过程都调用另一个,否则我认为这没有任何问题。事实上,这可能有好处

  • 更容易维护更小的代码段
  • (重新)编译较小的存储过程会更快

**:MSSQL 中有一个“限制”,即堆栈被限制为 32 级。也就是说,如果程序 1 调用程序 1_1 并且该程序调用程序 1_1_1 并且该程序调用另一个程序等等......当您收到超过 32 次“深度”调用时会出现错误。不过,按顺序调用多个存储过程不是问题。

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

【讨论】:

    猜你喜欢
    • 2014-08-10
    • 2010-10-30
    • 2018-12-28
    • 1970-01-01
    • 2013-07-03
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多