Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法处理SQL命令-Oracle作业计划程序_Sql_Oracle_Plsql_Scheduler - Fatal编程技术网

无法处理SQL命令-Oracle作业计划程序

无法处理SQL命令-Oracle作业计划程序,sql,oracle,plsql,scheduler,Sql,Oracle,Plsql,Scheduler,我正在尝试使用SQL Developer设置一个简单的计划作业,但无法设置作业,错误消息如下:- 无法处理SQL命令 开发者日志给了我两个条目 Level Seq Elaps Source Message SEVERE 32 62 oracle.dbtools.scheduler.generator.DBMSSchedulerCodeGenerator Can't find template CREATE_JOB_DES

我正在尝试使用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;
这将无法编译,因为不能在PL/SQL中使用ALTER。要执行DDL,如CREATEALTER或DROP,需要使用execute IMMEDIATE

此外,DDL语句在执行之前和之后执行隐式提交,因此块中的提交语句是冗余的

请尝试以下操作:

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;

嗨,卢克,谢谢你的意见,真的很感激,在挖掘了更多信息之后,我认为这更像是一个特权问题,我试图在没有系统的情况下设置它,我不认为它喜欢这样!!