Oracle程序的调用执行,DBMS调度程序oracle - 如何执行程序

我放松了我的想法。我有一个名为foo()的过程,它不带任何参数。我想每3分钟执行一次,比如说。我写的代码如下所示:DBMS调度程序oracle - 如何执行程序

BEGIN

dbms_scheduler.create_job(job_name => FooJob,

job_type => 'PLSQL_BLOCK',

job_action => '

BEGIN

foo();

END;',

start_date => SYSTIMESTAMP,

repeat_interval => 'FREQ=MINUTELY;INTERVAL=3;BYHOUR=17;BYMINUTE=35;',

enabled => TRUE

comments => 'A comment.');

END;

/

这给了我一个错误:应该定义标识符'applyjobpenalities'。

另外:

1)如何FOO的执行之后执行dbms_output.put_line()();?是否可以直接放这条线?

2)如何检查程序foo()是否(正在)代表调度程序执行?

UPDATE: 好了,所以我所做的就是:

1)我在SQL类型Plus的设置SERVEROUTPUT上“

2)我做了一个程序:

create or replace procedure proc1

IS

BEGIN

dbms_output.put_line('sth');

end;

/

3)我将调度程序代码更改为:

BEGIN

dbms_scheduler.create_job( job_name => 'JustATest',

job_type => 'PLSQL_BLOCK',

job_action =>

'BEGIN

proc1();

END;',

start_date => systimestamp + interval '10' second,

repeat_interval => 'FREQ=SECONDLY',

enabled => TRUE);

END;

/

但我在SQL Plus中看不到任何结果。我错过了什么?这两个过程都成功地编译和当我输入我可以看到这个工作:

SELECT * FROM DBA_SCHEDULER_JOBS;

+0

阅读文档 - https://docs.oracle.com/cd/B28359_01/server.111/b28310/schedadmin002.htm#ADMIN12039请显示完整的错误堆栈跟踪。您无法从后台作业中“查看”dbms_output。 –

+0

proc1正在后台运行。您看不到dbms_output的输出。不知道如何让这个更清楚。如果需要,写入日志表。 –

+0

我现在明白了,谢谢。但是,如果我使用其他更新数据的过程,我没有看到它实际运行。那怎么了? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值