Разница между dbms_job и автономной транзакцией pragma

в чем разница между dbms_job и автономной транзакцией pragma


person Rajesh G    schedule 11.12.2018    source источник
comment
Вам бы помог простой поиск в Google по каждому, вместо того, чтобы задавать вопрос на сайте, предназначенном в основном для программирования запросов.   -  person Kaushik Nayak    schedule 11.12.2018


Ответы (1)


Кроме того, что они пишутся по-разному? Они так же похожи, как яблоки и бананы.

Пакет DBMS_JOB планирует и управляет заданиями в очереди заданий. Он используется для запуска определенных процедур в запланированное время. Например, каждый день в 02:00, 08:00 и 16:00; или каждую субботу в 12:00 и т. д. Если вы работаете в Windows, это похоже на диспетчер задач. Или, в Unix, он называется Cron.

У него есть младший брат по имени DBMS_SCHEDULER, который предоставляет гораздо больше возможностей. Хотя для простых задач я все еще использую DBMS_JOB. Подробнее здесь: https://docs.oracle.com/database/121/ARPLS/d_job.htm#ARPLS019


Pragma означает, что инструкция является прагмой (директивой компилятора). Прагмы обрабатываются во время компиляции, а не во время выполнения. Они передают информацию компилятору.

Прагма AUTONOMOUS_TRANSACTION изменяет способ работы подпрограммы внутри транзакции. Подпрограмма, помеченная этой прагмой, может выполнять операции SQL и фиксировать или откатывать эти операции без фиксации или отката данных в основной транзакции.

Обычно он используется для регистрации определенной информации из ваших процедур, не затрагивая основную процедуру (поскольку прагма позволяет процедуре logging фиксировать свои вставки в таблицу журнала, не затрагивая основную процедуру — она может даже завершиться ошибкой ( и неявный откат), но информация вашего журнала останется нетронутой и доступной для просмотра).

Люди неправильно используют его при устранении ошибки мутирующих таблиц; правда, эта прагма «исправляет» проблему, но обычно это НЕПРАВИЛЬНЫЙ способ решить эту проблему.

Подробнее об автономных транзакциях здесь: https://docs.oracle.com/database/121/LNPLS/static.htm#LNPLS00609

person Littlefoot    schedule 11.12.2018
comment
Они так же похожи, как яблоки и бананы. Скорее, они так же похожи, как яблоки и фруктовые пироги. Не все фруктовые пироги содержат яблоко, не все яблоки попадают в пирог :) - person APC; 11.12.2018