关于dbms_job.submit

Regarding dbms_job.submit

我对在 Oracle 中安排作业有点陌生。考虑到我在 oracle 中使用 dbms_job.submit 到 运行 多个作业(过程)。每个工作会有不同的会话吗?

dbms_job.submit(1, 'begin proc; end;' );
dbms_job.submit(2, 'begin proc; end;' );

现在的问题是作业 运行ning(上面提到的 2 个作业)具有不同的会话 ID 还是相同的?

我问你这个问题的原因是因为假设这两个作业是 运行ning 并行的,并且作业 1 将在成功完成时提交,但在此期间作业 2 失败了并发生回滚。在这种情况下,JOB1 提交的记录是否也会回滚?

Oracle documentation is quite clear: 后台作业 运行 在他们自己的会话中。所以job 1 和job 2 的会话之间没有关系。


顺便说一句,如果您使用的是现代版本的数据库(11g 或更高版本),您确实应该使用 DBMS_SCHEDULER 而不是已弃用的 DBMS_JOB。 Find out more.