BG_JOB_ID与以前的版本不同

时间:2019-08-27 11:28:17

标签: sql oracle jobs oracle19c

在19c之前的Oracle数据库版本中,SYS_CONTEXT('USERENV','BG_JOB_ID')dba_jobs返回了作业ID(如果它在后台进程中运行)。

从19c版本开始,同一条语句返回绝对不同的数字,该数字与dba_jobs.job id不对应。

是错误还是功能?如何映射带有dba_jobs中的工作ID的19c结果?

我尝试通过v$Scheduler_Running_Jobsdba_jobs_running映射它。它可以工作,但是有点令人困惑。

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

在后台会话中。

1 个答案:

答案 0 :(得分:0)

从Oracle 12.2.0.1开始不推荐使用

dbms_job,因此在升级到Oracle 19c期间,作业将从dbms_job转换为dbms_scheduler作业。 Mike Dietrich在他的博客文章dbms_job-behavior-change-in-oracle-19c-during-upgrade/中描述了详细信息,我认为BG_JOB_ID显示了已迁移作业的dbms_scheduler ID。