在19c之前的Oracle数据库版本中,SYS_CONTEXT('USERENV','BG_JOB_ID')
从dba_jobs
返回了作业ID(如果它在后台进程中运行)。
从19c版本开始,同一条语句返回绝对不同的数字,该数字与dba_jobs.job
id不对应。
是错误还是功能?如何映射带有dba_jobs
中的工作ID的19c结果?
我尝试通过v$Scheduler_Running_Jobs
和dba_jobs_running
映射它。它可以工作,但是有点令人困惑。
select SYS_CONTEXT('USERENV','BG_JOB_ID') from dual
在后台会话中。
答案 0 :(得分:0)
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。