BG_JOB_ID отличается от предыдущей версии

В версиях базы данных Oracle до 19c, SYS_CONTEXT('USERENV','BG_JOB_ID') вернул идентификатор работы от dba_jobs (если он был запущен в фоновом режиме).

Начиная с выпуска 19c, тот же оператор возвращает абсолютно другое число, которое не соответствует dba_jobs.job Я бы.

Это ошибка или особенность? Как я могу сопоставить результат 19c с идентификатором задания из dba_jobs?

Я пытался отобразить это через v$Scheduler_Running_Jobs а также dba_jobs_running, Это работает, но немного сбивает с толку.

select SYS_CONTEXT('USERENV','BG_JOB_ID') from dual 

в фоновой сессии.

0 ответов

Dbms _job устарел, начиная с Oracle 12.2.0.1, поэтому во время обновления до Oracle 19c задания будут преобразованы из dbms_job в задания dbms_scheduler. Майк Дитрих описывает подробности в своем сообщении в блоге https://mikedietrichde.com/2019/05/24/dbms_job-behavior-change-in-oracle-19c-during-upgrade/ Я думаю, что BG_JOB_ID отображает идентификатор dbms_scheduler для перенесенных заданий.

Другие вопросы по тегам