【问题标题】:Scheduler Oracle Stored Procedure调度程序 Oracle 存储过程
【发布时间】:2015-05-21 17:38:37
【问题描述】:

我有一个简单的存储过程,我希望 Oracle 每周执行一次,并将它放在 Oracle 调度程序中。它创建得很好,计划任务似乎执行(没有错误),但我的存储过程没有执行。我在数据库上有管理员权限,我没有收到任何错误。只是没有得到我想要的结果。

以下是工作详情:

创建成功

存储过程很简单

create or replace 
PROCEDURE DELETEBOGUSLETTERRECORDS AS 
BEGIN
    DELETE FROM BOGUSLETTERS;
    COMMIT;
END DELETEBOGUSLETTERRECORDS;

该过程在调度程序之外进行了测试,执行良好,指定表中的所有记录都被删除。 但是,相同的程序在预定时没有正确执行。我什至让作业立即运行,但运行后,记录并没有被删除。没有任何错误。

有什么问题?谢谢!

【问题讨论】:

  • 检查 *_SCHEDULER_JOB_LOG 和 *_SCHEDULER_JOB_RUN_DETAILS(将 * 替换为 ALL、USER 或 DBA)视图
  • 我很惊讶它没有抛出错误。 PL/SQL 块不需要(而且我相信不能拥有)关键字EXEC。该命令在 SQLPlus 中用于执行块外的过程。您应该拥有的只是BEGIN deletebogusletterrecords; END;
  • 嗯,按照建议检查了日志和详细信息。原来这个任务从来没有运行过?!我现在有点困惑,为什么没有。我让它立即运行,它被忽略了。我也尝试将它安排在特定时间,当时间过去时,什么都没有运行。如何强制计划任务运行?另外,我将按照建议删除 exec 命令。
  • @HepC:你是对的!我删除了命令“exec”,任务实际上成功完成。没有错误,任务只是默默地忽略它......去图!
  • @HelpC 答案是删除关键字 EXEC。如果您将其发布为答案,我会将其标记为答案。感谢您的及时指导。非常感谢!

标签: oracle dbms-scheduler


【解决方案1】:

我不确定,但我们执行这样的程序:

[作业类型:PL/SQL 块]

BEGIN   
SCHEMA_NAME.STORED_PROC_NAME;   
END;

它们像这样运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-29
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2011-03-13
    • 2011-04-25
    • 2010-12-16
    相关资源
    最近更新 更多