Запуск сценария обновления Oracle SQL ежедневно - PullRequest
3 голосов
/ 10 ноября 2011

Мне было интересно, что является самым быстрым, простым и эффективным способом ежедневного выполнения кода SQL?У нас есть несколько сценариев обновления, которые мы хотели бы запустить, и сейчас у нас нет простого способа сделать это.Я не могу найти какой-либо вариант в Oracle SQL Developer для этого.

(я думаю, что одним из способов может быть запуск файла PHP каждую ночь, хотя по опыту он имеет серьезные проблемы с разрешениями, а также открывает экземплярТо есть каждую ночь без возможности потом закрыть)

Спасибо

Ответы [ 3 ]

10 голосов
/ 10 ноября 2011

База данных Oracle имеет много опций для запуска запланированных заданий, что означает, что вам не нужно полагаться на операционную систему (например, cron в Linux / Unix).

Вы можете использовать более старый пакет DBMS_JOB или более новый и более сложный DBMS_SCHEDULER также доступен в 10g.

пример:

BEGIN
  DBMS_SCHEDULER.create_job (
    job_name        => 'gather_stats_for_scott', -- this name is arbitrary 
    job_type        => 'PLSQL_BLOCK', --see possible job types here http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_sched.htm#i1000363
    job_action      => 'BEGIN DBMS_STATS.gather_schema_stats(''SCOTT''); END;',
    start_date      => SYSTIMESTAMP, --start now
    repeat_interval => 'freq=daily',
    end_date        => NULL,
    enabled         => TRUE,
    comments        => 'This job does this and that' --arbitrary comment
  );
END
3 голосов
/ 10 ноября 2011

Существует множество опций, две самые простые из которых зависят от платформы:

Windows

Настройте запланированное задание Windows, которое будет запускаться вами @ определенные периоды. Вы можете использовать это для непосредственного вызова SQLPLUS и запуска вашего скрипта, или, если вы хотите обработать вывод, вы можете заключить его в пакетный файл?

Unix / Linux / Mac

Unixy, эквивалентный запланированным задачам, - это задания CRON, они работают аналогичным образом, и снова вы можете напрямую вызывать SQLPLUS или вызывать сценарий оболочки для обработки вывода / ошибок и т. Д.

Надеюсь, это поможет.

1 голос
/ 10 ноября 2011

Задание cron в системах типа linux / unix или запланированное задание в windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...