我正在尝试按如下方式安排Oracle 11g作业,但收到错误。 开始
= simple_form_for :result_entry, url: sezzion_sezzion_station_student_group_student_station_results_path do |f|
错误是
sqlplus / AS SYSDBA
SYS.dbms_scheduler.create_job(
job_name=>'testjob',
job_type=>'plsql_block',
job_action=>'BEGIN greetings; END;',
start_date=>SYSTIMESTAMP,
repeat_interval => 'byminute=0; bysecond=5;');
END;
/
*原因:为指定的属性提供了无效值。
*操作:使用此属性的有效值重新发出该命令。
最初我认为它是一个许可问题所以我给了以下许可
GRANT CREATE job TO SYSTEM;
GRANT EXECUTE ON system.greetings to public;
有人能确定问题吗?
答案 0 :(得分:0)
一切都在信息中。重复间隔错误。检查Calendar Syntax。
来自文档。
repeat_interval = regular_schedule | combined_schedule
这意味着重复间隔必须是regular_schedule或combined_schedule。
regular_schedule
regular_schedule = frequency_clause
[";" interval_clause] [";" bymonth_clause] [";" byweekno_clause] ..etc
这意味着frequency_clause是强制性的,其他是可选的。在您的代码中,没有frequency_clause。
工作实例。
repeat_interval => 'FREQ=HOURLY; byminute=0; bysecond=5;'
答案 1 :(得分:0)
对我来说
错误:
ORA-06512:在“ SYS.DBMS_ISCHED”,第209行ORA-06512:在“ SYS.DBMS_SCHEDULER”,第594行ORA-06512:在第2行错误
原因:
ORA-00054:资源繁忙,并且在指定为NOWAIT的情况下进行获取,或者超时为空
在截断该表时将显示此错误的示例
解决方案:
因此需要清除数据库中所有锁定的会话