[英]Failed to Process SQL Command - Oracle Job Scheduler
我正在尝试使用SQL Developer设置一个简单的计划作业,但无法通过错误消息设置该作业:-
无法处理SQL命令
开发人员日志给了我两个条目...
Level Seq Elaps Source Message
SEVERE 32 62 oracle.dbtools.scheduler.generator.DBMSSchedulerCodeGenerator Can't find template CREATE_JOB_DESTINATION_CREDENTIAL.st
SEVERE 31 0 oracle.dbtools.scheduler.generator.DBMSSchedulerCodeGenerator Can't find template CREATE_JOB_DESTINATION_CREDENTIAL.st
这是该工作的代码摘要,它是对一个表中的一行的简单更新,我想每天在一个测试实例上进行一次测试
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB (
job_name => '"CHEROKEE_BACKUP".""',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN
alter table drawing disable all triggers;
update DRAWING set proj_id = 1, site_id = 1, chg_num = 0, plant_id = 1, unit_id = 1, user_name = ''INTOOLS'', dwg_type_id = 1, chg_status = ''W'', chg_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), dwg_num = 0, curr_rev_num = 0, dwg_title1 = '' '', dwg_title2 = '' '', dwg_title3 = '' '', dwg_name = '' '', ven_prop_by = '' '', ven_prop_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), ven_dsgn_by = '' '', ven_dsgn_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), ven_drwn_by = '' '', ven_drwn_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), ven_ck_by = '' '', ven_ck_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), ven_appr_by = '' '', ven_appr_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), cl_ck_by = '' '', cl_ck_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), cl_engr_by = '' '', cl_engr_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), cl_appr_by = '' '', cl_appr_date = TO_DATE(''28-02-1995'',''DD-MM-YYYY''), area_id = 1, bmp_file_name = '' '', bmp_file_path = '' '', dwg_desc = '' '', output_dwg_fmt_id = 0, parent_id = 0, format_id = 0, rev_id = 0, eng_proj_id = 10, eng_ref_id = 10, merge_release_flg = ''N'' where dwg_id = 0;
alter table drawing enable all triggers;
commit;
END;',
number_of_arguments => 0,
start_date => TO_TIMESTAMP_TZ('2014-07-15 14:45:46 America/Chicago','YYYY-MM-DD HH24.MI.SS TZR'),
repeat_interval => 'FREQ=DAILY',
end_date => TO_TIMESTAMP_TZ('2014-07-31 14:45:46 America/Chicago','YYYY-MM-DD HH24.MI.SS TZR'),
job_class => '"SYS"."DEFAULT_JOB_CLASS"',
enabled => FALSE,
auto_drop => FALSE,
comments => '');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"CHEROKEE_BACKUP".""',
attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"CHEROKEE_BACKUP".""',
attribute => 'max_run_duration', value => INTERVAL '1' HOUR);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"CHEROKEE_BACKUP".""',
attribute => 'schedule_limit', value => INTERVAL '1' HOUR);
SYS.DBMS_SCHEDULER.enable(
name => '"CHEROKEE_BACKUP".""');
END;
它的模板是什么? 为什么找不到它们? 我没有正确设置什么?
任何指导更大的赞赏
我对您的错误消息提到的模板一无所知,但是我可以告诉您,您为工作运行的PL / SQL块无效,并且无法编译:
BEGIN
alter table drawing disable all triggers;
update DRAWING set proj_id = 1, site_id = 1, -- rest of line snipped
alter table drawing enable all triggers;
commit;
END;
由于ALTER
无法在PL / SQL中使用,因此无法编译。 要执行诸如CREATE
ALTER
或DROP
DDL,您需要使用EXECUTE IMMEDIATE
。
此外,DDL语句在执行前后都会执行隐式提交,因此您块中的commit
语句是多余的。
请尝试以下操作:
BEGIN
execute immediate 'alter table drawing disable all triggers';
update DRAWING set proj_id = 1, site_id = 1, -- rest of line snipped
execute immediate 'alter table drawing enable all triggers';
END;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.