【问题标题】:PL/SQL cursor problem in procedure过程中的PL/SQL游标问题
【发布时间】:2011-02-23 10:29:56
【问题描述】:

我有存储过程。在过程中有三个游标。我必须在生产中每天运行过程。我只希望每天运行两个游标,剩下的游标应该只在每个月的第一天运行。那么有什么变化应该对第三个光标进行。请提供解决方案。

【问题讨论】:

    标签: oracle plsql scheduling plsqldeveloper


    【解决方案1】:

    游标本身并没有真正运行。使用光标的是您的代码。因此,如果是当月的第一天,您可以签入代码:

    -- Check if today is first day of the month
    if trunc(sysdate, 'MM') = trunc(sysdate) then
      -- Use cursor here
    end if;
    

    可能更好的解决方案是创建两个单独的程序并为每个程序创建工作。您可以指定作业的时间间隔,这样一个每天运行,另一个每月运行。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 这个答案太粗鲁了,没有帮助。
      • 它直接将他指向Oracle文档,而这里需要dbms_scheduler(或一些调度软件)。简单明了。
      • 他不想安排程序,他想根据运行日期有条件地使用其中一个游标。
      • @tony,我理解,但是当我看到“两个游标应该每天运行......游标应该只在每个月的第一天运行”时,它会尖叫调度程序,尤其是在产品代码中。这种时序逻辑将增长并变得更加复杂几乎是不可避免的。 IT 无法管理 pl/sql 内部的更改,但他们可以管理计划。我想如果我没有时间进行全面的解释,我会保持我的陷阱关闭;)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多