定时执行 存储过程 求助!

leiru 2008-09-21 10:07:42
我用的数据库是oracle,现在我想写个存储过程(先查一个sql语句,然后把查出来的insert到表2中),另外这个操作我要求在每天的01:00点执行。。
比如我先建立一个这样的存储过程(select id,name from user),然后把查出来的id,name insert到表usercheck中),这个操作要的每天的1点定时操作。
求助各位大虾们,怎么解决啊。。。有知道的详细说明一下好吗??
谢谢!
...全文
149 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hebo2005 2008-09-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 leiru 的回复:]
variable job1 number;
begin
dbms_job.submit(:job1,'insertSysdate',sysdate,'sysdate+1/1440');
end;


我是这么写的,你们看一下有问题吗??
[/Quote]
你这不是每一分钟执行一次吗
sysdate 当前时间
sysdate+1/1440 当前时间+1分钟
你要第二天执行
要用sysdate+1
如果要保证第二天1点执行
要trunc(sysdate+1)+1/24
leiru 2008-09-21
  • 打赏
  • 举报
回复
variable job1 number;
begin
dbms_job.submit(:job1,'insertSysdate',sysdate,'sysdate+1/1440');
end;


我是这么写的,你们看一下有问题吗??
leiru 2008-09-21
  • 打赏
  • 举报
回复
dbms_output.put_line('the job number is '||to_char(jobNum));
这一步执行有问题。。
请在说明一下,谢谢~
凌晨风 2008-09-21
  • 打赏
  • 举报
回复
declare
jobNum number;
begin
jobNum:=0;
dbms_job.submit(job => jobNum,
--这儿写你的过程名称
what => 'procedure_name',
--这儿写第一次执行时间
next_date => to_date('13-01-2008 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),
--这儿写你的时间间隔,1/24就是1点
interval => 'trunc(sysdate+1) + 1/24');

dbms_output.put_line('the job number is '||to_char(jobNum));
commit;
end;
leiru 2008-09-21
  • 打赏
  • 举报
回复
你可以帮我写个例子吗??
我有点不明白。。
suiziguo 2008-09-21
  • 打赏
  • 举报
回复
使用oracle job执行该存储过程,时间设为每天01:00,间隔为24小时就好了。
leiru 2008-09-21
  • 打赏
  • 举报
回复
楼上的谢谢了。。
我也刚找到方法,一样。。
感谢。。明天给你们加分!
insert into usercheck(usercode,username) select usercode,username from cc_user


zhifeiji007 2008-09-21
  • 打赏
  • 举报
回复
create or replace procedure insertSysDate as
begin
insert into usesrcheck (select id,name from user);
end;
leiru 2008-09-21
  • 打赏
  • 举报
回复
定时执行已经解决了,各位大虾帮帮忙啊,帮我写个存储过程啊。。
create or replace procedure insertSysDate as
begin
select id,name from user; //查询出来的有多条记录
insert into usercheck values (id,name);
end ;

是这样写的吗??

现在我想写个存储过程(先查一个sql语句,然后把查出来的insert到表2中)
比如我先建立一个这样的存储过程(select id,name from user),然后把查出来的id,name insert到表usercheck中)
leiru 2008-09-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hebo2005 的回复:]
引用 5 楼 leiru 的回复:
variable job1 number;
begin
dbms_job.submit(:job1,'insertSysdate',sysdate,'sysdate+1/1440');
end;


我是这么写的,你们看一下有问题吗??


现在我遇到的问题是,我写的这个例子,它在pl/sql中报错
显示无效sql语句。。
这是怎么回事啊??
难道用sql_plus运行吗?

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧