我一直在互联网上寻找解决我的问题的方法,但是我找不到适合目的的解决方案。可以请一些人帮助和指导我一些例子。
在 Oracle em 控制台中,我有一个至少运行 1 小时的作业,在作业运行过程中,它将更新 Oracle 中的几个表。
基本上我希望 SQL 查询每 1 分钟运行一次,一旦计数等于 8,它应该停止并继续前进....
TABLE_NAME: TASK - 此表将在 1 小时处理期间更新
ID TYPE_ID VALUE
1 12 TEST1
2 13 TEST2
3 14 TEST3
4 15 TEST4
5 16 TEST5
感谢你的帮助。
最佳答案
您可以创建一个作业并使用 安排它。 DBMS_SCHEDULER .您的所有逻辑都可以驻留在 PL/SQL 中 程序然后 日程安排 在所需位置执行的程序 间隔 .
例如,
SQL> BEGIN
2 DBMS_SCHEDULER.create_job (
3 job_name => 'test_job',
4 job_type => 'PLSQL_BLOCK',
5 job_action => 'BEGIN my_job_procedure; END;',
6 start_date => SYSTIMESTAMP,
7 repeat_interval => 'freq=0; byminute=0; bysecond=30;',
8 end_date => NULL,
9 enabled => TRUE,
10 comments => 'Job defined entirely by the CREATE JOB procedure.');
11 END;
12 /
PL/SQL procedure successfully completed.
SQL>
SQL> SELECT JOB_NAME, ENABLED FROM DBA_SCHEDULER_JOBS where job_name ='TEST_JOB'
2 /
JOB_NAME ENABL
-------------------- -----
TEST_JOB TRUE
SQL>
上述工作将根据您的 开始系统时间戳 ,然后执行程序
my_job_procedure
每 30 秒 .查看更多示例 here .
关于sql - 每 30 秒运行一次 oracle 查询 (SQL),一旦计数等于 8,它应该继续进行并完成工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30571657/