sql语句定时执行
create or replace procere MYPROCEDURE is
begin
UPDATE mac_vod SET vod_play_url= replace(vod_play_url, '第', '弟');
commit;
end MYPROCEDURE;
declare myjob number;
begin
DBMS_JOB.SUBMIT(
job => myjob,
what => 'myprocere;',
next_date => SYSDATE,
interval => 'sysdate+5/(24*60)');
commit;
end;
㈡ 我想定时让 oracle 执行一段sql语句 怎么做
如:定时删除三分钟前的数据
###1.创建存储过程
SQL>createorreplaceprocerepro_delete_aas
2begin
3deletefromatwheret.a<(sysdate-3/1440);###一天1440分钟。即一分钟是1/1440
4end;
5/
Procerecreated
###2创建job
SQL>variablejob_pro_delete_anumber;
SQL>begin
2dbms_job.submit(:job_pro_delete_a,'pro_delete_a;',sysdate,'sysdate+3/1440');
3end;
4/
PL/
job_pro_delete_a
---------
127
###3.调用job
SQL>begin
2dbms_job.run(:job_pro_delete_a);
3end;
4/
PL/
job_pro_delete_a
---------
127
###4.删除job
SQL>begin
2dbms_job.remove(:job_pro_delete_a);
3end;
4/
Ps:select*fromuser_jobs;
dbms_job.remove(ID);
㈢ sql2008 如何定时执行存储(每月1号凌晨2点自动执行存储proc_Sales_order)
IFEXISTS(SELECT*FROMmsdb.dbo.sysjobsWHEREname='启用pubs数据库')
EXECmsdb.dbo.sp_delete_job@job_name='启用pubs数据库'
--定义创建作业
DECLARE@jobiniqueidentifier
EXECmsdb.dbo.sp_add_job
@job_name=N'启用pubs数据库',
@job_id=@jobidOUTPUT
--定义作业步骤
DECLARE@sqlnvarchar(400),@dbnamesysname
SELECT@dbname=N'master',--数据库联机或者脱机只能在master数据库中进行
@sql=N'ALTERDATABASEpubsSETONLINE'--使用pubs数据库联机(启用)
EXECmsdb.dbo.sp_add_jobstep
@job_id=@jobid,
@step_name=N'启用pubs数据库处理',
@subsystem='TSQL',
@database_name=@dbname,
@command=@sql
--创建调度(使用后面专门定义的几种作业调度模板)
EXECmsdb..sp_add_jobschele
@job_id=@jobid,
@name=N'启用pubs数据库处理调度',
@freq_type=4,
@freq_interval=1,
@freq_subday_type=0x1,
@freq_subday_interval=1,
@active_start_time=075000--每天07:50分执行
--添加目标服务器
DECLARE@servernamesysname
SET@servername=CONVERT(nvarchar(128),SERVERPROPERTY(N'ServerName'))
EXECmsdb.dbo.sp_add_jobserver
@job_id=@jobid,
@server_name=@servername
--给你一个例子不懂在问我
㈣ 如何将一条sql语句每天定时的执行,执行完了,自动发出短信
1 使用sql的job来实现sql的定时执行
2 执行完时,将短信信息写入一张有关的信息表。
3 另外一个短信服务程序,不停查找待发短信,并发送
㈤ 怎么使某一条sql语句每天定时执行
在linux or Unix系统中有一个叫crontag的东西。
你可以设定执行的时间,它就是每天循环执行了。
格式:(second hour date month week)
00 10 * * * /u01/app/cronjob/exe_select.sh
每天十点整执行一次
㈥ 如何定时的去执行SQL语句
1.把要执行的SQL语句准备好,例如:
use ttNew //使用ttNew数据库
Go
insert into Users(name) values(" ") //往表Users插入一条记录
将该语句保存在文件user.sql里,放在d盘跟目录下。
2.写一个批处理文件,例如:
再新建一个记事本,里边写上语句osql -E -i d:\user.sql,保存为11.bat
3.利用系统任务计划调用批处理文件,执行SQL语句
在系统程序->附件->系统工具->任务计划
添加新任务计划,点下一步,再点浏览,找到11.bat文件,后,选择执行时间,点下一步。一直点,最后输入本机的密码,点完成。
㈦ php如何定时的执行sql语句
在mysql中创建事件,可用于定时执行
CREATE EVENT
CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schele
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT 'comment']
DO sql_statement;
㈧ Oracle中如何定时执行一条SQL语句
通过网上查询,找到一种方案,就是先在oracle里面对要定时的sql写成存储过程,再用DBMS_scheler对存储过程进行定时执行。
在数据库中新建了一个表MY_JOB_TEST
在数据库中新建了一个表MY_JOB_TEST
在数据库中新建了一个表MY_JOB_TEST
在PLSQL中,执行下面语句模拟存储过程的调用,执行后要点提交才有反应
[sql] view plain
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
GrantCreateJobTo指定用户名
SQL>CREATEORREPLACEPROCEDURE
JOB_TEST
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
- (此处要执行存储过程不能用exec JB_TEST,这种执行方式只能在命令行中使用)
SQL>BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name=>'SCHEDULER_TEST',
job_type=>'STORED_PROCEDURE',
job_action=>'JOB_TEST',
start_date=>sysdate,
repeat_interval=>'FREQ=MINUTELY;INTERVAL=1');
END;
- 但是这样子定时任务并不会执行。
SQL>SELECT*FROMUSER_SCHEDULER_JOBS;
- 此时我们可以看到enable的状态是false的,因此我们需要去启动定时任务
SQL>BEGIN
DBMS_SCHEDULER.ENABLE('SCHEDULER_TEST');
然后下面建立一个存储过程JOB_TEST
(注意,这里用户需要CREATE JOB权限,可以用超级管理员用户执行下面语句给指定用户赋予该权限)
[sql] view plain
[sql] view plain
使用DBMS_SCHEDULER进行定时,这里为每分钟执行一次
[sql] view plain
我们可以用下面的命令查看一下scheler的状态
[plain] view plain
[plain] view plain
dbms_scheler.enable('j_test'); --启用jobs
dbms_scheler.disable('j_test'); --禁用jobs
dbms_scheler.run_job('j_test'); --执行jobs
dbms_scheler.stop_job('j_test'); --停止jobs
dbms_scheler.drop_job('j_test'); --删除jobs
然后再查询job的enable装态,发现为true了。
然后查看MY_JOB_TEST表,发现每分钟会往里面添加记录。
当需要修改定时任务或者调度的其他属性时,可以用下面的
dbms_scheler.set_attribute('调度名','调度属性','调度值');
至此,定时任务完成。