Sql 使用特定Oracle用户运行Oracle 11g计划作业

Sql 使用特定Oracle用户运行Oracle 11g计划作业,sql,database,oracle,oracle11g,Sql,Database,Oracle,Oracle11g,我已经为每5分钟运行一次过程创建了计划作业。在“指定数据”中删除某些数据的过程。当我直接从procedure call procedure()调用它时;它按预期工作。在调度程序作业中,日志显示成功,但没有发生更改。我怀疑是用户登录,可能是因为当我作为当前会话运行计划作业时,它按预期工作,但我使用另一个会话运行时,它不工作 BEGIN SYS.DBMS_SCHEDULER.CREATE_JOB( job_name => 'TDSUITE.SYNC_JOB' ,s

我已经为每5分钟运行一次过程创建了计划作业。在“指定数据”中删除某些数据的过程。当我直接从procedure call procedure()调用它时;它按预期工作。在调度程序作业中,日志显示成功,但没有发生更改。我怀疑是用户登录,可能是因为当我作为当前会话运行计划作业时,它按预期工作,但我使用另一个会话运行时,它不工作

BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB(
    job_name        => 'TDSUITE.SYNC_JOB'
    ,start_date      => TO_TIMESTAMP_TZ('2020/02/01 00:00:00.000000 +07:00','yyyy/mm/dd hh24:mi:ss.ff tzr')
    ,repeat_interval => 'FREQ=MINUTELY;INTERVAL=5;'
    ,end_date        => NULL
    ,job_class       => 'DEFAULT_JOB_CLASS'
    ,job_type        => 'PLSQL_BLOCK'
    ,job_action      => 'TDSUITE.SYNC;'
    ,comments        => NULL
);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name      => 'TDSUITE.SYNC_JOB'
 ,attribute => 'RESTARTABLE'
 ,value     => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name      => 'TDSUITE.SYNC_JOB'
 ,attribute => 'LOGGING_LEVEL'
 ,value     => SYS.DBMS_SCHEDULER.LOGGING_OFF);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name      => 'TDSUITE.SYNC_JOB'
 ,attribute => 'MAX_FAILURES');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name      => 'TDSUITE.SYNC_JOB'
 ,attribute => 'MAX_RUNS');
BEGIN
    SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
    ( name      => 'TDSUITE.SYNC_JOB'
    ,attribute => 'STOP_ON_WINDOW_CLOSE'
    ,value     => FALSE);
EXCEPTION
    -- could fail if program is of type EXECUTABLE...
    WHEN OTHERS THEN
        NULL;
END;
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name      => 'TDSUITE.SYNC_JOB'
 ,attribute => 'JOB_PRIORITY'
 ,value     => 3);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name      => 'TDSUITE.SYNC_JOB'
 ,attribute => 'SCHEDULE_LIMIT');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name      => 'TDSUITE.SYNC_JOB'
 ,attribute => 'AUTO_DROP'
 ,value     => TRUE);

SYS.DBMS_SCHEDULER.ENABLE
    (name                  => 'TDSUITE.SYNC_JOB');
END;
/

您是否在作业完成后提交事务?是的,我会提交每个循环,因为在执行sql和提交后,过程内部会尝试删除一些数据。过程名称为SYNC,由TDSUITE拥有。您是在谁的架构中创建此作业的?这个用户对这个过程有执行权限吗?我在TDSUITE模式中创建了这个作业,并且这个过程也是在TDSUITE模式中创建的。如果我在这个模式中创建,这意味着我有特权吗?因为您的间隔是5分钟,您应该看看