【发布时间】:2020-02-23 05:11:13
【问题描述】:
我必须定期创建工作。
但首先我创建了一个简单的作业来学习如何在 oracle 中创建作业,因为这是我第一次使用作业。
它以 systimestamp 运行,但作业没有执行。
create or replace procedure job_test
is
begin
update table_a set value_user = 'JOB_EXECUTED' where id = 1;
commit;
end;
/
然后是调度器作业
begin
dbms_scheduler.create_job(
job_name => 'test_job_A',
job_type => 'stored_procedure',
job_action => 'job_test',
start_date = SYSTIMESTAMP,
enabled => true
);
end;
/
然后我查阅了 value_user 列,它还没有更新。
select * from table_A where id = 1;
谁能解释一下我错过了什么。
【问题讨论】:
-
我创建了一个只有“value_user”和“id”列的测试表“table_a”。然后我插入了一行值(id = 1,value_user = 'test')。然后我创建了你的程序和你的工作。我已经在 SQL 开发人员中完成了这项工作,一切正常。当我运行查询“select * from table_A where id = 1;”时我得到(id = 1,value_user = JOB_EXECUTED)。你的表中有一行 id = 1 吗?我不得不问:)
标签: oracle stored-procedures dbms-scheduler