【问题标题】:Drop the oracle job scheduler after completing the job action完成作业操作后删除 oracle 作业调度程序
【发布时间】:2015-07-22 14:08:17
【问题描述】:

我创建了一个删除一张表的 oracle 作业调度程序。之后,我想立即删除该作业调度程序。因此,我只在该调度程序中编写了DROP_JOB 命令,但不存在获取错误对象。出现此错误是因为我尚未创建作业调度程序并试图删除相同的调度程序。建议其他方式来完成这项任务。我不想手动删除作业调度程序。

请参考以下代码:-

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
        job_name => '"SAPSMC"."V"',
        job_type => 'PLSQL_BLOCK',
        job_action => 'BEGIN 
                       EXECUTE IMMEDIATE ''DROP TABLE STUDENT'';
                       END;',
        number_of_arguments => 0,
        start_date => NULL,
        repeat_interval => NULL,
        end_date => NULL,
        enabled => FALSE,
        auto_drop => FALSE,
        comments => '');

 DBMS_SCHEDULER.DROP_JOB(
 job_name         => 'V',
 defer            => TRUE,
 commit_semantics => 'TRANSACTIONAL');



DBMS_SCHEDULER.SET_ATTRIBUTE( 
         name => '"SAPSMC"."V"', 
         attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
DBMS_SCHEDULER.SET_ATTRIBUTE( 
         name => '"SAPSMC"."V"', 
         attribute => 'raise_events', value => '32');



DBMS_SCHEDULER.enable(
         name => '"SAPSMC"."V"');
END;

【问题讨论】:

    标签: plsql oracle11g scheduler job-scheduling


    【解决方案1】:

    试试下面的代码。您必须将auto_drop 属性设置为true

    参考:Documentation

    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
            job_name => '"SAPSMC"."V"',
            job_type => 'PLSQL_BLOCK',
            job_action => 'BEGIN 
                           EXECUTE IMMEDIATE ''DROP TABLE STUDENT'';
                           END;',
            number_of_arguments => 0,
            start_date => NULL,
            repeat_interval => NULL,
            end_date => NULL,
            enabled => FALSE,
            auto_drop => TRUE,
            comments => '');
    
    
    DBMS_SCHEDULER.SET_ATTRIBUTE( 
             name => '"SAPSMC"."V"', 
             attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
    DBMS_SCHEDULER.SET_ATTRIBUTE( 
             name => '"SAPSMC"."V"', 
             attribute => 'raise_events', value => '32');
    
    
    
    DBMS_SCHEDULER.enable(
             name => '"SAPSMC"."V"');
    END;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多