问题标签 [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.
oracle - DBMS_SCHEDULER.STOP_JOB 在 PL-SQL-Procedure 中不可能,授予授权
我的问题是关于在包中使用 DBMS_SCHEDULER 。我已将 SCHEDULER_ADMIN 权限授予用户。现在,在我通过程序外部的脚本创建作业后,我可以在我的程序中设置这些命令。
到目前为止一切顺利。
现在我的问题是:为什么这些命令不能在我的程序代码中工作?
只要我通过脚本在自己的会话中输入命令而不是嵌入到包代码中,命令就会起作用。问题是我想在我的 PL-SQL 包中输入这些命令,因为在我的包中我知道何时发生错误,所以我想输入这些命令。
你能帮助我吗?非常感谢。
我收到以下错误:
ORA-27486: Nicht ausreichende Berechtigungen ORA-06512: 在 "SYS.DBMS_ISCHED", Zeile 210 ORA-06512: 在 "SYS.DBMS_SCHEDULER", Zeile 557 ORA-06512: 在 "SCHEMANAME.JOB_KILLEN_PCK", Zeile 31 ORA-06512:在泽勒 6
我所做的授权是由 sys_user 提供的:
在第 31 行有以下代码
这是出于安全原因,Oracle 不希望我能够通过启动过程来停止作业。因为这样我就可以停止我知道名字的每一个工作?如果这是正确的,如果在我的过程中的作业期间发生故障,我将无法停止作业
如果你愿意,我可以给你发我的测试包
oracle - Oracle DBMS_Scheduler 的最佳实践
Oracle DBMS_Scheduler 有什么好处?
- 每次都安排(禁用)作业。并在需要时启用并运行它。
- 创建作业,运行它并删除它。
我有一个表 x,每当有记录提交到该表时,我应该有一份工作来处理该记录。我们可能会或可能不会一直插入唱片。请记住这一点..有什么更好的...?
database - DBMS_SCHEDULER 如何为作业的repeat_interval 提供多个计划?
我有多个计划,我想将所有计划提供给作业的 repeat_interval。但是,我找不到这样做的方法 - Oracle 文档说这是可能的,但我找不到任何示例。任何帮助表示赞赏。这是我尝试过的,但它不起作用:
ORA-06512: 在第 2 行 27418。00000 -“重复间隔或日历中的语法错误”
*原因:重复间隔或日历定义未被识别为有效语法。
oracle - 将脚本转换为 dbms_scheduler 的 PL/SQL 过程
我对 SQL 很陌生。我正在尝试将我拥有的脚本转换为存储过程,以便我可以运行:
调度器。
这是我的 SQL:
oracle - 如何实现心跳定时器
我需要实现一个用 PL/SQL 编写的心跳函数,每 5 分钟 ping 一次 Web 服务。我知道 PL/SQL 确实不是编写此代码的正确语言,但必须以这种方式完成。
上面的伪代码确实是我认为可以完成的唯一方法。我知道有一个带有 oracle 的计时器包,但我不确定我是否应该使用它。有任何想法吗?
oracle - dbms_scheduler 重复间隔最大值
在文档(11g,12c)中,我们读到:
这指定了一个正整数,表示重复的频率。默认值为 1,表示每秒为秒,每天为每天,依此类推。最大值为 99。
在文档(10g)中,我们读到:
...相同...最大值为 999。
但在 Oracle 10g 和 12c 中,SECONDLY 频率的实际最大值为 7999。哪里是真的?我找不到一些勘误表文档。
oracle - 如何使用以前的作业名称在 Oracle 链中运行失败的步骤?
我有一份经营连锁店的工作。该链由 5 个步骤组成。运行第一步,如果成功,将运行其他三个步骤(独立,并行)。只有当所有三个步骤都成功时,最后一步才会开始。一切正常。
我想测试一个有错误的案例。我故意在上述三个步骤之一中提供了一个错误。结果,我的第一步成功了,所以运行了三个步骤。正如我所料,其中只有两个成功了,第三个失败了。所有步骤都适用于一些自动生成的 job_name(我通过查询 user_scheduler_job_run_details 检查了 job_name)。我删除了故意错误并使用以下方法仅运行失败的步骤:
当然,我之前失败的步骤成功了(因为删除了一个错误)。但是这一步是使用另一个自动生成的 job_name 运行的,不幸的是最后一步(在所有提到的三个步骤都成功后运行)没有运行。我想用特定的(以前的)job_name 运行失败的步骤,因此最后一步应该自动运行。
如何使用以前的特定作业名称在 Oracle 链中运行失败的步骤?
oracle - 并行运行/执行多个过程 - Oracle PL/SQL
我有一个 Activity 表,它正在获取系统的所有表事件。所有系统表上的新订单、插入/删除等事件都将插入到该表中。因此,对于 Activity 表来说,每秒事件数确实很大。
现在,我想根据负责引发事件的表来处理基于业务逻辑的传入事件。每个表可能有不同的过程来进行处理。
我在 PL/SQL 中使用了相同的链接 并行化调用
作为解决方案,我创建了多个dbms_scheduler
将同时调用的作业。所有这些作业 ( JOB1, JOB2--- - -JOB10
) 将具有与实现并行处理 相同的过程 ( ProcForAll_Processing
) 。JOB_ACTION
ProcForAll_Processing
: 这个过程依次会依次调用其他 6 个过程
Proc1,proc2,proc3 --- -- - -- - Proc6
。我也想为这些实现并行处理。
PS:我们不能创建更多的作业来实现ProcForAll_Processing
proc 中的并行处理,因为它可能会导致消耗更多的资源,而且 DBA 也不同意创建更多的作业。另外,我不能
dbms_parallel_execute
用于并行处理。
请帮助我,因为我真的很难完成它
java - 如何从 java 调用 oracle dbms_scheduler.run_job?
我在我的 oracle 数据库中有一份工作,出于某种原因,我需要在我的 java 应用程序中调用它。
有人有想法告诉我怎么做吗?
我已经尝试过:
由CallableStatement
执行 DBMS_SCHEDULER.RUN_JOB('My_job_name')
DBMS_SCHEDULER.RUN_JOB('My_job_name')
{DBMS_SCHEDULER.RUN_JOB('My_job_name')}
{execute DBMS_SCHEDULER.RUN_JOB('My_job_name')}
但它们都没有工作。
任何帮助,将不胜感激
sql - DBMS_shceduler 作业在创建时执行选择语句
我正在尝试在 oracle sql 中建立一个拍卖行进行练习。我想为每个项目制作 DBMS 作业,因为当 sysdate 等于拍卖结束时,它会触发并出售该项目。
我有这个程序“出售”,可以出售新物品。最后我有这个:(ident 是项目的 id)Itt 调用一个函数,将钱存入正确的帐户。
问题是它似乎执行了“pay_the_seller”过程。在创建作业时不是在 start_date。
例如,如果该项目的起始出价为 1,则当作业触发时,即使我同时更改了出价,它也会在帐户中添加 1。
编辑:在“pay_the_seller()”过程中,SELECT 语句在创建作业时执行,但 UPDATE 不是。
如何使 SELECT 不立即执行?