Man*_*noj 8 oracle plsql stored-procedures dbms-scheduler
我正在尝试手动运行预定作业,这个工作看起来像这样
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'UPDATE_PLAYER_STATES',
job_type => 'STORED_PROCEDURE',
job_action => 'PLAYER_STATE_UPDATER',
repeat_interval => 'FREQ=DAILY;BYHOUR=0', /* every day at Midnight */
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false);
Run Code Online (Sandbox Code Playgroud)
现在,当我使用运行程序时,execute PLAYER_STATE_UPDATER我可以看到所需的结果,但是作业无法执行,如图所示
select log_date, job_name, status, run_duration
from dba_scheduler_job_run_details where job_name='UPDATE_PLAYER_STATES' or status='FAILED';
LOG_DATE JOB_NAME STATUS RUN_DURATION
------------- -----------------------------------------------------------------
23-AUG-11 00.20.24.288887000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
22-AUG-11 10.27.24.537659000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
22-AUG-11 10.28.50.447042000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
22-AUG-11 10.30.30.018891000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
25-AUG-11 10.59.02.332579000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
25-AUG-11 10.59.15.980730000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
25-AUG-11 10.59.27.823131000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
25-AUG-11 11.01.04.798364000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
24-AUG-11 00.20.24.419251000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
25-AUG-11 00.20.24.299180000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
25-AUG-11 09.35.24.798535000 +01:00 UPDATE_PLAYER_STATES FAILED 0 0:0:0.0
Run Code Online (Sandbox Code Playgroud)
手动执行作业也会dbms_scheduler.run_job('UPDATE_PLAYER_STATES');因错误而失败
Error starting at line 1 in command:
dbms_scheduler.run_job('UPDATE_PLAYER_STATES')
Error report:
Unknown Command
Run Code Online (Sandbox Code Playgroud)
我错过了什么
Dav*_*sta 16
当您尝试手动运行作业时,看起来您只是没有在SQL Developer中使用正确的语法.你需要使用execute dbms_scheduler.run_job('UPDATE_PLAYER_STATES').当然,这并不能解释为什么这项工作失败了.
我的猜测是工作配置有问题,甚至无法启动; 但我不知道它是什么.您可以尝试在其中包含模式名称,job_action以确保它没有查找错误的模式.
有感兴趣的东西在其他列dba_scheduler_job_run_details-尤其error#还是additional_info?
小智 7
您正在以以下方式手动运行作业:
dbms_scheduler.run_job('UPDATE_PLAYER_STATES')
Run Code Online (Sandbox Code Playgroud)
Oracle认为这是一个命令,但不是,这就是为什么您收到错误消息“未知命令”的原因。
执行它的正确方法是:
BEGIN
dbms_scheduler.run_job('UPDATE_PLAYER_STATES');
END;
Run Code Online (Sandbox Code Playgroud)
一旦实现了执行权限,如果您的架构没有足够的特权,那么您将看到诸如“对象不存在或您没有权限”之类的信息,这可能是问题的根本原因。
最好的祝福 :)
| 归档时间: |
|
| 查看次数: |
74461 次 |
| 最近记录: |