【发布时间】:2018-02-01 07:27:42
【问题描述】:
我正在尝试通过 dbms_scheduler 运行一个过程,但它只是被创建但没有运行。使用的数据库版本 Oracle 11.2.x
程序
create or replace procedure count_comp
as
Total_count number;
begin
select count(*) into Total_count from user_tables;
dbms_output.put_line('Number '|| Total_count);
end;
创建工作
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'My_Count_Job',
job_type => 'STORED_PROCEDURE',
job_action => 'count_comp',
start_date => '28-APR-08 07.00.00 PM Asia/Calcutta',
repeat_interval => 'FREQ=DAILY;INTERVAL=2', /* every other day */
auto_drop => FALSE,
enabled =>TRUE,
comments => 'My new job');
END;
/
【问题讨论】:
-
您确定它没有运行,还是您希望它的输出出现在某个地方?输出将永远不会被任何人看到。
-
@Tony Andrews 是的,我们可以通过 select * from dba_SCHEDULER_JOB_LOGS 进行检查。
-
请尝试运行并发布输出:
SELECT job_name, enabled, state, start_date FROM user_scheduler_jobs where job_name = 'My_Count_Job'; -
如果你的程序是有效的,这不会有什么坏处。您不妨修复程序的错误:
user_table应该是user_tables.putline应该是put_line。