问题标签 [dbms-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1550 浏览

oracle - 调度作业,但 dba_scheduler_jobs 的重复间隔为空

我正在使用以下语句创建调度程序

但是当我运行以下查询时

我看到该repeat_interval列有一个空值。

我已经让这项工作运行了将近 3 天,但我没有看到任何结果。这里有什么问题?

0 投票
1 回答
1722 浏览

oracle - 将调度程序作业与窗口相关联

试图将作业与窗口相关联。连接应该使用 schedule_name 工作,但它似乎不起作用。

可重现的例子

创建窗口每隔一分钟打开一次

好的,正在关联作业

create_job明确说明的文档

schedule_name - 与此作业关联的计划、窗口或窗口组的名称。

有什么问题 ???

0 投票
1 回答
444 浏览

oracle - Oracle Job Scheduler 不会重复 job_action

我想每 5 分钟重复一次工作。我有一个测试表,我用随机日期填充。如果有比 SYSDATE-5 更早的日期,我想删除它们。以下代码仅在我第一次启动调度程序时有效,并且它永远不会再次重复 job_action:

我是否使用带有错误 FREQ 和错误 INTERVAL 的 repeat_interval?

我在 Oracle SQL Developer 中使用调度程序。

0 投票
5 回答
28075 浏览

oracle11g - 如何安全地安排 Oracle dbms_scheduler 作业时区和 DST

我正在尝试将 DBMS_SCHEDULER 作业设置为在 Oracle 11g 上每年 1 月 1 日凌晨 1 点准确运行。由于时区差异或夏令时,如何设置其属性以绝对确保它不会在错误的时间执行。

我花了很多时间浏览 Oracle 文档,但我仍然没有达到确定的程度。

顺便说一句,以下是我发现并认为与该主题相关的规则:

工作属性

start_date 此属性指定此作业计划开始的第一个日期。如果 start_date 和 repeat_interval 保留为空,则作业将在作业启用后立即运行。对于使用日历表达式指定重复间隔的重复作业,start_date 用作参考日期。作业将被安排运行的第一次是当前日期当天或之后的日历表达式的第一个匹配项。调度程序不能保证作业将在准确的时间执行,因为系统可能过载,因此资源不可用。

repeat_interval此属性指定作业应重复的频率。您可以使用日历或 PL/SQL 表达式指定重复间隔。对指定的表达式求值以确定下次作业应该运行的时间。如果未指定 repeat_interval,则作业将在指定的开始日期仅运行一次。有关详细信息,请参阅“日历语法”。

日历语法中的规则

  • 日历语法不允许您指定时区。相反,调度程序从 start_date 参数中检索时区。如果作业必须遵循夏令时调整,您必须确保为 start_date 的时区指定区域名称。例如,将纽约的 start_date 时区指定为“美国/东部”将确保自动应用夏令时调整。如果将 start_date 的时区设置为绝对偏移量,例如“-5:00”,则不遵循夏令时调整,并且您的作业执行将在一年中的半小时内关闭。
  • 当 start_date 为 NULL 时,调度程序将确定重复间隔的时区,如下所示:
  • 它将检查会话时区是否为区域名称。会话时区可以通过以下任一方式设置: 发出 ALTER SESSION 语句,例如: SQL> ALTER SESSION SET time_zone = 'Asia/Shanghai'; 设置 ORA_SDTZ 环境变量。
  • 如果会话时区是绝对偏移量而不是区域名称,则调度程序将使用 DEFAULT_TIMEZONE 调度程序属性的值。有关详细信息,请参阅 SET_SCHEDULER_ATTRIBUTE 过程。
  • 如果 DEFAULT_TIMEZONE 属性为 NULL,则调度程序将在启用作业或窗口时使用 systimestamp 的时区。
0 投票
2 回答
2657 浏览

oracle - 在 Oracle 11g DBMS_SCHEDULER 的 repeat_interval 中使用 PL/SQL 表达式

我正在尝试将 PL/SQL 表达式设置为我的工作的 REPEAT_INTERVAL - 不幸的是,它不起作用。

我想在这样的间隔内包含 CASE 表达式,例如,如何设置作业的重复间隔在一整分钟内开始,比如说在 14:17:00,如果它在偶数分钟运行,它会在 30 分钟内运行秒下一次,如果它在奇数分钟运行,它会在下一分钟开始,所以它的运行时间表看起来像:

等等。我已经尝试过这些表达:

它们都在 SQL 查询中工作,但我无法编译 JOB。这样的 PL/SQL 表达式应该是什么样子的?

或者,有没有办法让 JOB 在运行时计算它的下一个运行日期?我还尝试在每次作业运行时修改开始日期,但没有成功 - 看起来该作业在第一次运行时只使用一次开始日期,并且再也不会使用,即使日期已更改为将来的日期。

0 投票
1 回答
127 浏览

sql - 将作业添加到调度程序以每天自动调用该作业

我创建了一个每天 09:00:00 运行的作业。

下面是我用来创建工作的片段:

这样做的唯一目的是在每天 09:00:00 运行存储过程“TEST”

如何将此作业添加到调度程序以每天自动调用此作业?谁能告诉我??

0 投票
1 回答
1268 浏览

oracle11g - 为什么,无法在 Oracle 中锁定行缓存条目错误 (ORA-27355)?

我决定尝试使用oracle 调度程序安排我的作业,我创建了一组作业,并尝试使用这些作业相互通信queue,我尝试使用一两个作业它运行良好,但是当我使用一堆作业(超过 20 个作业) 并尝试与使用queue. 一个工作成功后,它会同时queue向其他工作发布更多的消息,在一些成功的帖子之后它会抛出这个错误

我的疑惑:

  • 为什么会出现这个错误

  • 如何克服这个错误

0 投票
1 回答
3088 浏览

sql - Oracle dbms_scheduler.create_job 错误

我正在尝试在 oracle 10g 数据库中创建一个简单的预定事件。我一直在尝试使用 dbms_scheduler.create_job。这是我写的脚本:

开始 dbms_scheduler.create_job (

job_name => 'disengagementChecker',

job_type => 'PLSQL_BLOCK',

job_action => 'INSERT INTO PatientClassRelObs(patientClassID,observationTypeID) VALUES (1, 11)',

开始日期 => SYSDATE,

repeat_interval => 'FREQ=MINUTELY;INTERVAL=1',

评论 => '我正在测试调度程序'); 结尾;

当我运行它时,oracle 会抛出这些错误

ORA-06550:第 15 行,第 3 列:

PLS-00103:在预期以下情况之一时遇到符号“文件结尾”:

; 符号“;” 被替换为“文件结尾”以继续。

我不明白是什么导致了这个错误。你知道是什么导致了这个错误吗?或者为什么会这样?

先感谢您!

-大卫

0 投票
1 回答
322 浏览

javascript - 检查 Oracle 11gR2 计划作业何时完成并在 Oracle APEX 中提醒用户

在 Oracle APEX v4.2 中,我有一个应用程序,用户按下按钮,然后关闭并提交计划的后台作业,允许用户继续在应用程序中工作。该作业使用 Oracle 的 DBMS_SCHEDULER 启动。

我的问题是并希望将其保留在 Oracle APEX 空间内 - 假设有一个表存储作业何时启动以及何时完成,我如何与该表交互,检查作业是否已完成(即以某种方式轮询表格并在找到“完成”状态时停止),然后提供一个 5 秒的警报,该警报会滑入然后滑出,通知用户作业已完成。

我可以通过动态操作使用 JavaScript(回调)吗?

0 投票
1 回答
139 浏览

sql - DBMS_JOB 超过触发器

我想知道 DBMS_JOB 是否可以在 Trigger 上使用。

我的要求是我希望在插入或更新 Table1 时运行该作业。我想知道,如果我每 1 分钟安排一次作业以根据日期选择更新/插入的行,它是否会给我的数据库带来任何负载(尽管更新或插入不会经常发生)。我正在使用 Oracle 11g。

谢谢