You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何通过DBMS_SCHEDULER作业获取创建它的会话SID?

能否从DBMS_SCHEDULER运行的作业中识别创建会话的SID?

答案是不能,仅依赖Oracle自带的元数据视图无法直接获取创建作业的会话SID,具体原因如下:

  • DBA_SCHEDULER_JOBS及其关联视图仅记录作业的创建者、创建时间、最后更新时间等基础信息,不会存储创建该作业时的会话SID。
  • V$SESSION仅保留当前活跃或近期终止的会话数据,作业创建完成后原会话可能已断开,且该视图没有与作业关联的字段,无法追溯。
  • USERENV函数只能获取当前执行会话的信息,无法回溯到作业创建时的会话。

若需实现该需求,不使用显式传递方式的前提下,只能通过审计机制间接获取:

  • 启用针对DBMS_SCHEDULER.CREATE_JOB操作的审计,审计日志(如DBA_AUDIT_TRAIL或UNIFIED_AUDIT_TRAIL)会记录执行创建操作的会话SID。后续可通过作业的创建时间、创建者等信息关联审计记录,匹配出对应的SID。

内容的提问来源于stack exchange,提问作者Rusty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 11:02:10