database - 如何在 Windows 中安排 cron 作业以特定时间间隔在 oracle 数据库中执行查询或存储过程?
问题描述
我有一个数据库,我想在一个表上执行查询,并将其输出推送到另一个表,这需要在特定的时间间隔内完成。我想在 windows 中使用 cron 来执行此操作。我正在使用 oracle 数据库。请让我知道需要为此创建步骤和文件。
解决方案
如果您在 Oracle 中安排作业,那么您几乎可以肯定要使用DBMS_SCHEDULER
. 它比默认的操作系统调度程序更安全、更强大、更可靠。它也是可移植的,无论 Oracle 在什么平台上运行,相同的工作都可以工作。
如果有人要求您“在 Windows 上创建一个 cron 作业”,他们可能会在一般意义上使用“cron”这个词来表示某种调度系统。默认情况下,Windows 没有 cron。我敢肯定有办法安装它,但为什么要添加非标准、功能较弱的软件呢?
--Create initial objects:
create table test1(a number);
insert into test1 values(1);
create table test2(a number);
--Create the job:
begin
dbms_scheduler.create_job(
job_name => 'daily_table_copy',
job_type => 'PLSQL_BLOCK',
job_action =>
q'[
begin
insert into test2
select * from test1;
commit;
end;
]',
repeat_interval => 'freq=daily;byhour=4;byminute=0;',
start_date => systimestamp at time zone 'US/Eastern'
);
end;
/
--Monitor the job:
select * from dba_scheduler_jobs where job_name = 'DAILY_TABLE_COPY';
select * from dba_scheduler_running_jobs where job_name = 'DAILY_TABLE_COPY';
推荐阅读
- html - 从 HTML 嵌套表格中删除默认单元格填充
- java - 我正在使用 selenium 在 java 中创建方法,但出现错误
- java - @Transactional 不适用于 Spring Boot 和 JDBC
- java - 另一种不使用“*”运算符将两个数字相乘的方法
- java - 如何在 Android 中管理资源
- ios - iOS App 传输对推送通知的影响
- php - 如何在一个删除查询中使用多个表名 - 并非所有表都有数据
- json - Angular 6 JSON 反序列化
- tsql - T-SQL FTS 包含单个字符“n”匹配数字
- javascript - Javascript不释放内存?