调度程序Oracle存储过程
我有一个简单的存储过程,我希望Oracle每周执行一次,并将其放入Oracle调度程序中。它创建得很好,计划的任务似乎正在执行(没有错误),但我的存储过程没有执行。我有对数据库的管理权,我没有得到任何错误。只是没有得到我想要的结果 以下是该工作的详细信息: 创作是成功的 存储过程是一个简单的过程调度程序Oracle存储过程,oracle,dbms-scheduler,Oracle,Dbms Scheduler,我有一个简单的存储过程,我希望Oracle每周执行一次,并将其放入Oracle调度程序中。它创建得很好,计划的任务似乎正在执行(没有错误),但我的存储过程没有执行。我有对数据库的管理权,我没有得到任何错误。只是没有得到我想要的结果 以下是该工作的详细信息: 创作是成功的 存储过程是一个简单的过程 create or replace PROCEDURE DELETEBOGUSLETTERRECORDS AS BEGIN DELETE FROM BOGUSLETTERS; C
create or replace
PROCEDURE DELETEBOGUSLETTERRECORDS AS
BEGIN
DELETE FROM BOGUSLETTERS;
COMMIT;
END DELETEBOGUSLETTERRECORDS;
该过程在调度程序外部进行了测试,执行良好,并删除了指定表中的所有记录。
但是,在计划时,该过程没有正确执行。我甚至让作业立即运行,但在运行之后,记录没有被删除。没有任何错误
问题是什么?谢谢 我不确定,但我们执行的过程如下: [作业类型:PL/SQL块]
BEGIN
SCHEMA_NAME.STORED_PROC_NAME;
END;
它们可以像这样运行。检查*\u调度程序\u作业\u日志和*\u调度程序\u作业\u运行\u详细信息(将*替换为全部、用户或DBA)视图我很惊讶它没有抛出错误。PL/SQL块不需要(我相信不能有)关键字
EXEC
。该命令在SQLPlus中用于在块外执行过程。你所要做的就是begindeletebogusletterrecords;结束代码>。好吧,按照建议检查日志和详细信息。原来任务从来没有运行过?!我现在有点困惑,为什么没有。我让它立即运行,但它被忽略了。我也试着把它安排在特定的时间,当时间过去了,什么都没有运行。如何强制运行计划的任务?另外,我将按照建议删除exec命令。@HepC:你说得对!我删除了命令“exec”,任务实际成功完成。没有错误,任务只是静静地忽略它…算了吧@HelpC答案是删除关键字EXEC。如果你把它贴出来作为答案,我会这样标记。谢谢你的及时指导。非常感谢!