Oracle 11g запланированное задание запускается с указанием c oracle пользователя - PullRequest
0 голосов
/ 27 февраля 2020

Я уже создаю расписание заданий для запуска процедуры на каждые 5 минут. Процедура удаления некоторых данных в указанных данных. Когда я вызываю это прямо из процедуры 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;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...