过程中的PL/SQL游标问题
Posted
技术标签:
【中文标题】过程中的PL/SQL游标问题【英文标题】:PL/SQL cursor problem in procedure 【发布时间】:2011-02-23 10:29:56 【问题描述】:我有存储过程。在过程中有三个游标。我必须在生产中每天运行过程。我只希望每天运行两个游标,剩下的游标应该只在每个月的第一天运行。那么有什么变化应该对第三个光标进行。请提供解决方案。
【问题讨论】:
【参考方案1】:游标本身并没有真正运行。使用光标的是您的代码。因此,如果是当月的第一天,您可以签入代码:
-- Check if today is first day of the month
if trunc(sysdate, 'MM') = trunc(sysdate) then
-- Use cursor here
end if;
可能更好的解决方案是创建两个单独的程序并为每个程序创建工作。您可以指定作业的时间间隔,这样一个每天运行,另一个每月运行。
【讨论】:
【参考方案2】:查看dbms_scheduler
【讨论】:
这个答案太粗鲁了,没有帮助。 它直接将他指向Oracle文档,而这里需要dbms_scheduler(或一些调度软件)。简单明了。 他不想安排程序,他想根据运行日期有条件地使用其中一个游标。 @tony,我理解,但是当我看到“两个游标应该每天运行......游标应该只在每个月的第一天运行”时,它会尖叫调度程序,尤其是在产品代码中。这种时序逻辑将增长并变得更加复杂几乎是不可避免的。 IT 无法管理 pl/sql 内部的更改,但他们可以管理计划。我想如果我没有时间进行全面的解释,我会保持我的陷阱关闭;)以上是关于过程中的PL/SQL游标问题的主要内容,如果未能解决你的问题,请参考以下文章