0

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

dba_jobs.job从 19c 版本开始,相同的语句返回完全不同的数字,这与id不对应。

是错误还是功能?如何将 19c 结果与来自的工作 ID 映射dba_jobs

我试图通过v$Scheduler_Running_Jobs和映射它dba_jobs_running。它有效,但有点令人困惑。

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

在后台会话中。

4

1 回答 1

1

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

于 2019-09-03T11:42:37.540 回答